机器学习初学者 03月06日
【Python】matplotlib + pynimate,轻松让数据动起来!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了Python工具pynimate,它能帮助用户轻松地将数据可视化为动态图表。pynimate支持Python 3.9及以上版本,通过简单的代码,用户可以将静态数据转换为引人入胜的动画。文章详细展示了pynimate的安装步骤和使用方法,包括如何定义动画效果、设置插值频率、数据变换以及添加画布和条形图等。此外,还提供了个性化定制条形图的各种选项,例如颜色、标题、标签和注释等。通过pynimate,用户可以更生动地呈现数据,提高数据可视化的吸引力和表达力。

🛠️ Pynimate是一个Python工具,用于创建数据的动态可视化效果,支持Python 3.9及以上版本,通过pip安装即可使用。

📊 使用Pynimate,可以定制条形图的各种属性,包括颜色、标题、坐标轴标签等,并通过post_update函数设置动画的插值频率,从而控制动画的流畅度。

💾 Pynimate支持将动态图表保存为多种格式,例如MP4和GIF,方便用户在不同的平台和场景中使用和分享数据动画。

pythonic生物人 2025-03-06 12:02 浙江

轻松让数据动起来

本文再分享一个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.87.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格式



-END-

推荐阅读:

?Python matplotlib保姆级教程

?保姆级matplotlib教程—详细目录

?Python seaborn保姆级教程

?保姆级seaborn教程:详细目录






阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Pynimate Python 数据可视化 动态图表
相关文章