一个Python工具,轻松让数据舞动起来

Posted qq_21478261

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Python工具,轻松让数据舞动起来相关的知识,希望对你有一定的参考价值。

本文再分享一个Python工具pynimate,轻松让数据动起来。


pynimate安装

pynimate只支持Python 3.9以上版本,如果电脑中有低版本Python,可构建一个Python3.9版本虚拟环境,

​conda create -n py39 python=3.9
conda activate py39

pip install pynimate -i https://pypi.tuna.tsinghua.edu.cn/simple

pynimate使用

效果图

代码

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import os
import matplotlib as mpl
import pynimate as nim


mpl.rcParams['font.family'] = 'DejaVu Sans' #切换系统支持的字体

#定义post_update,设置插值频率
def post_update(ax, i, datafier, bar_attr):
    ax.spines["top"].set_visible(False)
    ax.spines["right"].set_visible(False)
    ax.spines["bottom"].set_visible(False)
    ax.spines["left"].set_visible(False)
    ax.set_facecolor("#001219")
    for bar, x, y in zip(
        bar_attr.top_bars,
        bar_attr.bar_length,
        bar_attr.bar_rank,
    ):
        ax.text(
            x - 0.3,
            y,
            datafier.col_var.loc[bar, "continent"],
            ha="right",
            color="k",
            size=12,
        )


#数据变换
df = pd.read_csv("sample.csv").set_index("time") #此处可替换自己数据
col = pd.DataFrame(
    
        "columns": ["Afghanistan", "Angola", "Albania", "USA", "Argentina"],
        "continent": ["Asia", "Africa", "Europe", "N America", "S America"],
    
).set_index("columns")
bar_cols = 
    "Afghanistan": "#2a9d8f",
    "Angola": "#e9c46a",
    "Albania": "#e76f51",
    "USA": "#a7c957",
    "Argentina": "#e5989b",


#添加画布
cnv = nim.Canvas(figsize=(12.8, 7.2), facecolor="#001219")

#条形图个性化
bar = nim.Barplot(
    df, "%Y-%m-%d", "3d", post_update=post_update, rounded_edges=True, grid=False
)
bar.add_var(col_var=col)
bar.set_bar_color(bar_cols)
bar.set_title("Sample Title", color="w", weight=600)
bar.set_xlabel("xlabel", color="w")
bar.set_time(
    callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"), color="w"
)
bar.set_text(
    "sum",
    callback=lambda i, datafier: f"Total :np.round(datafier.data.iloc[i].sum(),2)",
    size=20,
    x=0.72,
    y=0.20,
    color="w",
)
bar.set_bar_annots(color="w", size=13)
bar.set_xticks(colors="w", length=0, labelsize=13)
bar.set_yticks(colors="w", labelsize=13)
bar.set_bar_border_props(
    edge_color="black", pad=0.1, mutation_aspect=1, radius=0.2, mutation_scale=0.6
)

#条形图添加到画布
cnv.add_plot(bar)
cnv.animate()

#图形保存
cnv.save("test", 24, "mp4") #保存为mp4格式
#cnv.save("test", 24, "mp4") #保存为gif格式

传送门:https://julkaar9.github.io/pynimate/

更多干货👇👇

以上是关于一个Python工具,轻松让数据舞动起来的主要内容,如果未能解决你的问题,请参考以下文章

阿里云ACM:云原生配置管理利器,让云上的Spring Cloud应用配置管理舞动起来

太强了,Python 开发桌面小工具,让代码替我们干重复的工作

做数据分析为啥要使用Python?

Python可视化神器:pyecharts,轻松绘制 30+ 种超实用精美图表!

机器学习模型验证,这3个 Python 包可轻松解决95%的需求

让数据动起来!用Python制作动画可视化效果,让数据不再枯燥!