丢掉Excel,手把手教你用Python做可视化数据,还能任意调节动画丝
数据可视化动画还在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聊天统计的机器人应用程序
这个程序可以从导出的聊天中生成各种统计信息,也支持个人和群组聊天它完全脱机,不会被保存或共享
门户网站:
声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。