一个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可视化神器:pyecharts,轻松绘制 30+ 种超实用精美图表!