当前位置:首页>滚动 > >正文

丢掉Excel,手把手教你用Python做可视化,还能调节动画丝滑度

  • 2023-01-27 22:57:47来源:量子位

Pine 发自 凹非寺

量子位 | 公众号 QbitAI

数据可视化动画还在用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/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

标签: 应用程序 数据结构 动画效果

延伸阅读

推荐阅读

丢掉Excel,手把手教你用Python做可视化,还能调节动画丝滑度

Pine发自凹非寺量子位|公众号QbitAI数据可视化动画还在用Excel做?现在一个简单的Python包就能分分钟搞定!而且生成的动画也足够丝滑,效果是

弟弟攒5年压岁钱给姐姐买万元金镯是什么情况_每日快播

弟弟攒5年压岁钱给姐姐买万元金镯今天的热度非常高,现在也是在热搜榜上了,那么具体的弟弟攒5年压岁钱给姐姐买万元金镯是什么情况呢,大家可

盲品神器,这家神似勃艮第的奥地利名庄干白也太好喝!

星标这个公众号,每一款好酒都不错过奥地利就是一个充满宝藏的国家,奥地利葡萄酒的风土之美,尚不为人所知,这家神奇的酒庄还有不少其他的惊

为什么说,雷克萨斯ES只有全系降价5万,才能拯救低迷的销量!:环球快讯

为什么说,雷克萨斯ES只有全系降价5万,才能拯救低迷的销量!

春节假期北京西站迎来首个客流返程高峰-天天微资讯

针对节后夜间返程客流集中到达情况,北京西站派出所还与车站客运部门合作,在车站站台、出口处、广场等关键部位加派警力、加强巡逻,做好客流

新春“冰雪忙” 点亮“夜长城”|全球头条

新华社北京1月25日电新春佳节,北京延庆世界葡萄博览园冰雪大世界的休闲娱乐区充满欢声笑语;京郊龙庆峡冰灯冰雪嘉年华吸引各

怎样鉴别和田玉碧玉_怎样鉴别和田玉

1、真实感2、在辨别和田玉的时候,我们需要先看它的质地。一般和田玉看起来油油的,质地很细腻。在强光照射下,会呈现半透明至不透明,内部结

探望老人要注意啥?老人低烧、干咳咋用药?——专家解答春节期间防疫热点问题

春节期间仍是呼吸道传染病的高发期,而老年人是感染新冠病毒后发生重症的高危人群。春节期间探望老人要注意什么?老年人出现低烧、干咳等症状

2023年春节档总票房破42亿:每日讯息

猫眼专业版数据显示,2023年1月25日11时20分,2023年春节档(1月21日-1月27日)总票房(含预售)破42亿!《满江红》《流浪地球2》《熊出没·伴我

画天安 门简笔画的涂色 简单又漂亮_画天安 门简笔画的涂色 简单-环球焦点

1、准备画图用的纸,尺,铅笔,马克笔。2、首先,用尺子和铅笔画出天安门广场的屋顶。形状比梯形多两点。3、然后画中间连接部分和二楼屋顶。4

奇才将八村塁送至湖人 得到纳恩和三个次轮签

奇才将八村塁送至湖人得到纳恩和三个次轮签,纳恩,湖人,奇才,公牛,威少,八村塁,nba,次轮签

每日报道:uci_关于uci的基本详情介绍

1、加利福尼亚大学(尔湾)(UniversityofCalifornia,Irvine,简称UCIrvine或U

【天天速看料】北京今天最高气温仅零下5℃风寒效应明显

北京今天最高气温仅零下5℃风寒效应明显

全球观天下!新春走基层|湖南芷江:半里廊桥半里市 风雨桥上年味浓

新春之际,湖南省怀化市芷江侗族自治县这座小县城年味正浓,尤其是现今中国最大的风雨桥——龙津风雨桥上,人来人往。风雨桥,是侗族建筑“...

五河县气象局发布寒潮蓝色预警【IV级/一般】【2023-01-23】

五河县气象局发布寒潮蓝色预警【IV级 一般】【2023-01-23】

兔年咏兔,有关兔子的诗词,兔年祝你宏图大展! 视讯

兔年咏兔,有关兔子的诗词,兔年祝你宏图大展!

世界热议:新春走基层|除夕,天山脚下夜话新春新愿望

新春走基层|除夕,天山脚下夜话新春新愿望

米兔网_关于米兔网的基本详情介绍

1、米兔网是国内首家集折扣、返利、分享为一体的纯买家导购平台。2、提供购物返现金、独享折扣商品、最新最全优惠信息等服务,

观速讯丨40万级最香的豪华轿车 全新奔驰E级路试:气场强大!

揣着40万,买豪华品牌中大型轿车,那么奔驰E级绝对是很多人的首选。

【过年】一份来自台湾青年的兔年新春祝福,请查收!

新的一年前“兔”无量、两岸交流合作发展“兔”飞猛进、两岸青年一起大展宏“兔”

三门峡消防组织重点单位持续开展春节期间“六个一”活动:世界播资讯

三门峡消防组织重点单位持续开展春节期间“六个一”活动

《2023年夜饭报告》出炉,小镇青年最爱买海鲜,进口水果热销三四线城市

北京商报讯(记者赵述评)1月20日,拼多多发布了《2023年夜饭报告》。春节前夕,全国各地消费者置办年夜饭的热情一路走高,肉类、水饺、汤圆、

中国女足新一期集训名单:王霜王珊珊领衔 独家焦点

1月20日,中国足协发布了新一期女足集训的名单,王霜、王珊珊、唐佳丽等人悉数入选。通知全文如下:各有关会员协会、女子足球俱乐部:为全力备

春节前为外地群众追回被骗款,丹东公安收到一沓感谢信

春节前为外地群众追回被骗款,丹东公安收到一沓感谢信

2023重庆合川嘉隆西海烟花表演门票入场时间:全球热消息

门票价格:88元(优惠票79 9元)★限时烟花节早鸟优惠票票价:29 9元(原价88元)购买时间:1月20日前使用时间:有效期至2023年1月26日注:70周岁

天天速递!石佛办事处通和社区开展环境卫生清洁活动

春节将至,为营造一个干净整洁的人居环境和欢乐祥和的节日氛围,助力打造幸福和谐社区。1月20日上午,石佛办事处通和社区开展环境卫生清洁活动

天天观热点:公交出行一码通、打车优惠……这份上海春节出行攻略请收好

上海过年期间地铁还正常运行吗?春节还能打到车吗?面对这些和春节假期出行有关的问题,市交通委介绍,本市不断深化建设“出行即服务”(Maa...

属狗和牛相配婚姻如何_合得来吗

一、 属狗和牛相配吗:  在十二生肖中,生肖狗和生肖牛相刑,配对是下等婚配。属狗人和属牛人在一起,一生中是非不断。也许你

2023宁德白水洋鸳鸯溪景区门票价格-精彩看点

春节期间,全省4A级以上景区推出免门票特惠服务。其中1月28日—2月28日,全省所有5A级旅游景区免首道门票或半价。购票入口:点击进入交通:自

广西开出新年首趟中越年货班列|今日热议

广西开出新年首趟中越年货班列---1月19日12时,一趟满载黑木耳、风味蘑菇、糖果、啤酒等特色食品以及日用品等货物的X9101次中越班列从广西南宁

猜您喜欢

Copyright ©  2015-2022 北冰洋服装网版权所有  备案号:沪ICP备2020036824号-3   联系邮箱:562 66 29@qq.com