丢掉Excel,手把手教你用Python做可视化数据,还能任意调节动画丝

时间:2023-01-30 16:49 来源:IT之家   阅读量:13325   

数据可视化动画还在Excel里做。

现在一个简单的Python包几分钟就能搞定!

而且生成的动画足够丝滑,效果是酱紫的:

这是一个专门研究Python语言的程序员开发的安装包,名叫Pynimate。

目前可以通过PyPI直接安装使用。

使用指南

如果想用Pynimate,导入即可。

importpynimateasnim

输入数据后,Pynimate将使用函数Barplot来创建条形数据动画。

要创建这个动画,输入数据必须是pandas数据结构,其中时间列设置为索引,换句话说,索引代表自变量。

时间,第1列,第2列,第1212120131122015

具体代码形式如下:

importpandasaspddf = PD . read _ CSV . set _ index

例如,要处理特定的数据,代码应该是这样的。

df=pdDataFrame, "阿富汗":, "安哥拉":, "阿尔巴尼亚":, "美国":, "阿根廷":

另外,要制作条形数据动画,Barplot有三个必要的参数需要注意:data,time_format和ip_freq。

数据就是表中的数据,这里不赘述。

Time_format是指数据索引的时间和日期格式,一般为:%Y—% m—% d。

最后是制作动画的关键步骤ip_freq,通过线性插值让动画越来越流畅。

一般来说,并不是所有的原始数据都适合做动画现在典型的视频是24fps,也就是每秒有24帧

以栗子为例下表的数据只有三个时间点,按理说只能生成三帧视频,最后的动画只有3/24秒

时间,第1列,第2201213201322201431列

这时候ip_freq插值就发挥作用了。如果插值为四分之一,获得的数据将如下所示:

时间表22012—01—011 . 003 . 002012—04—011 . 252 . 752012—07—011 . 502 . 502012—10—011 . 752 . 252013—01—012 . 002 . 002013—04—012 . 251 . 752013—07—012 . 5012

具体的插值区间取决于具体的数据一般在绘制大数据时,设置为ip_freq = None

此时,可以生成数据动画,完整代码如下:

from matplotlibimportyplotasplimportpandasaspdimportpynimateasnimdf = PDDataFrame, "阿富汗":, "安哥拉":, "阿尔巴尼亚":, "美国":, "阿根廷":set_indexcnv=nim画布bar=nimBarplotbar . set _ time

这是两天插值生成的动画效果。

最后还有一个问题,就是保存动画有两种格式:gif或者mp4。

另存为动画。通常使用:

cnv .保存

如果想另存为mp4,ffmpeg是个不错的选择它是保存为mp4的标准编写器

pipinstallffmpeg—python

或者:

condainstallffmpeg

当然也可以用Canvas.save来保存。

Julkar9,Python/Flutter开发者,研究方向为数据分析与可视化。

小哥说Pynimate会不断更新,目前正在接受大家的反馈,之后会上线等值区域地图等功能。

他还开发了一个应用:Chatmetry,也和统计学有关这是一个用于创建whatsapp聊天统计的机器人应用程序

这个程序可以从导出的聊天中生成各种统计信息,也支持个人和群组聊天它完全脱机,不会被保存或共享

门户网站:

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。