丢掉 Excel,手把手教你用 Python 做可视化数据,还能任意调节动画丝滑度
消息来源:baojiabao.com 作者: 发布时间:2026-02-11
数据可视化动画还在用 Excel 做?
现在一个简单的 Python 包就能分分钟搞定!
而且生成的动画也足够丝滑,效果是酱紫的:
这是一位专攻 Python 语言的程序员开发的安装包,名叫 Pynimate。
目前可以直接通过 PyPI 安装使用。
使用指南
想要使用 Pynimate,直接 import 一下就行。
import pynimate as nim
输入数据后,Pynimate将使用函数Barplot()来创建条形数据动画。
而创建这种动画,输入的数据必须是 pandas 数据结构(如下),其中将时间列设置为索引,换句话说索引代表的是自变量。
time, col1, col2, col32012 1 2 12013 1 1 22014 2 1.5 32015 2.5 2 3.5
具体的代码形式如下:
import pandas as pddf = pd.read_csv('data'csv').set_index('time')比如要处理具体的数据,写成代码应该是这样子的。
df = pd.DataFrame( { "time": ["1960-01-01", "1961-01-01", "1962-01-01"], "Afghanistan": [1, 2, 3], "Angola": [2, 3, 4], "Albania": [1, 2, 5], "USA": [5, 3, 4], "Argentina": [1, 4, 5], }).set_index("time")此外,要制作条形数据动画,Barplot 还有三个必需的参数得注意:data、time_format 和 ip_freq(Interpolation frequency)。
data 就是表格的数据,这里也就不再赘述。
time_format 是指数据索引的时间日期格式,一般为:"% Y-% m-% d"。
最后是 ip_freq,它是制作动画中比较关键的一步,通过线性插值使动画更加流畅丝滑。
一般来说,并不是所有的原始数据都适合做成动画,现在一个典型的视频是 24fps,即每秒有 24 帧。
举个栗子🌰,下面这个表格中的数据只有三个时间点,按理说只能生成 3 帧视频,最终动画也只有 3/24 秒。
time, col1, col22012 1 3 2013 2 2 2014 3 1
这时候,ip_freq 插值(线性)就开始发挥作用了,如果插值是一个季度,则得出的数据就变成了这样:
time col1 col22012-01-01 1.00 3.002012-04-01 1.25 2.752012-07-01 1.50 2.502012-10-01 1.75 2.252013-01-01 2.00 2.002013-04-01 2.25 1.752013-07-01 2.50 1.502013-10-01 2.75 1.252014-01-01 3.00 1.00
具体的插值时间间隔为多久,则要视具体的数据而定,一般绘制大数据时,设置为 ip_freq = None。
至此,就能生成数据动画了,完整代码如下所示:
from matplotlib import pyplot as pltimport pandas as pdimport pynimate as nimdf = pd.DataFrame( { "time": ["1960-01-01", "1961-01-01", "1962-01-01"], "Afghanistan": [1, 2, 3], "Angola": [2, 3, 4], "Albania": [1, 2, 5], "USA": [5, 3, 4], "Argentina": [1, 4, 5], }).set_index("time")cnv = nim.Canvas()bar = nim.Barplot(df, "%Y-%m-%d", "2d")bar.set_time(callback=lambda i, datafier: datafier.data.index[i].year)cnv.add_plot(bar)cnv.animate()plt.show()这是插值为两天,生成的动画效果。
最后还有一个问题,那就是保存动画,有两个格式可以选择:gif 或者 mp4。
保存为动图一般使用:
cnv.save("file", 24, "gif")若要保存为 mp4 的话,ffmpeg 是个不错的选择,它是保存为 mp4 的标准编写器。
pip install ffmpeg-python
或者:
conda install ffmpeg
当然,同样也可以使用 Canvas.save () 来保存。
cnv.save("file", 24 ,"mp4")作者介绍
julkar9,Python / Flutter 开发人员,研究的方向为数据分析与可视化。
小哥表示,Pynimate 还会不断更新,目前正在接受大家的反馈,之后还会上线等值区域图等功能。
他还开发了一个应用程序:Chatmetry,同样也与数据统计有关,是一个用于创建 whatsapp 聊天统计数据的机器人应用程序。
这个程序可以从导出的聊天中生成各种统计信息,同时支持个人和群组聊天,并且是完全离线的,既不会保存也不会共享。
传送门:
https://julkaar9.github.io/pynimate/
本文来自微信公众号:量子位 (ID:QbitAI),作者:Pine
2023-02-12 19:18:33相关文章
炒港股要补交多少税?我也接到催交补税特别行动的电话了2025-07-23 17:36:43
淘宝天猫仅退款属于诈骗吗?淘宝天猫开始部分取消仅退款2024-10-01 13:01:28
哈啰app借钱|哈啰借钱app下载安装免费小小上当和电话骚扰2024-10-01 11:22:38
白嫖党|山西大同大学学生网购申请“仅退款”被拒骂客服一小时2024-09-27 09:10:44
北大数学教授袁新意《姜萍事件的疑点分析》点评姜萍板书 阿里巴巴竞赛受质疑2024-06-28 10:07:40
天猫新规可以无条件申请“仅退款”了?淘宝天猫又离狗多多零元购近了一步2024-06-28 09:27:13
美国法院裁定阿里须为Squishmallows玩具侵权案答辩2023-12-28 19:59:34
小米汽车传员工3700人 雷军称小米汽车不可能卖9万92023-12-28 19:41:57
国家新闻出版署:认真研究《网络游戏管理办法(草桉徵求意见稿)》关切 实行前进一步完善2023-12-28 19:14:56
印度以打击金融犯罪为由逮捕了两名 vivo 高管2023-12-26 16:49:01
在国外微信收不到国内信息?微信和WeChat将被拆分2023-12-15 10:40:15
苹果iPhone15 系列手机发布最新消息 预计上市发布时间9月2023-08-06 23:21:02
华为将发布鸿蒙HarmonyOS4操作系统 功能五大升级支持设备清单2023-08-06 23:17:37
整治自媒体网红账号 400万粉丝网红发布擦边视频被无限期封禁2023-07-12 09:56:09
网传微信文件传输助手是真人是真的吗?微信官方回应2023-06-27 15:53:32
电信移动送手机成了“信用购”?你上了运营商的贷款套路了吗?2023-06-12 17:18:55
中国电信广东地区崩了无信号 客服回应已在核实处理2023-06-08 15:39:04
消息称小米新能源汽车价格表正讨论定价区间:双版本不同配置,高配或超 35 万元2023-03-06 12:56:03
华为因制裁被传或分拆剥离手机业务? 内部人士回应:可能性不大.2023-03-05 23:26:41
OPPO正式发布安第斯智能云,让终端更智能2023-02-24 16:02:27














