0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用短视频来动态展示图表中数据的变化

电子工程师 来源:未知 作者:李倩 2018-09-25 11:03 次阅读

Matplotlib 和 Seaborn 用来做数据固定的静态图表很不错,但如果需要动态显示数据的变化过程用这俩库就有点难度了。如果能用短视频来动态展示图表中数据的变化是不是就有点厉害了?而且不用学新的库,就用Matplotlib 和 Seaborn,是不是更厉害了!今天就教大家一个很酷的教程,马上动起来。

这里我们用到的数据是由美国疾控中心和药物滥用研究所收集的。我最近用他们的数据给一个关于美国鸦片药物滥用危机的纪录片做了几个动态图所以这里就接着用了。下面是数据的下载链接:

下载地址:

https://www.drugabuse.gov/sites/default/files/overdose_data_1999-2015.xls

除了用Matplotlib和Seaborn来作图我们还用到了Numpy和Pandas来处理数据。先把需要的库都import进来:

接下来把数据从下载的Excel文件读进来,我们用Pandas来读所以读进来就是一个DataFrame。这里我们还写了一个传入行数只读取一行数据的函数。这是为了以后给不同药物分别做图的时候读数据方便一些。

这些准备工作做好我们就可以开始作图了。如果你用Jupyter Notebook的 话记得加图表页内显示的命令%matplotlib notebook。

我们先用刚才写的get_data函数把因为海洛因死亡的人数读出来。这个DataFrame有两列,分别是年份和死亡人数。

接下来我们初始化一个ffmpeg输出流。这里我设置帧率20码率1800 ,当然你自己可以改帧率和码率。

下面我们需要创建图表和横纵坐标。这里要把数据范围定死不然数据更新的时候 Matplotlib 会自动更新数据范围我们的动图数据范围就会来回变。

绘图中最重要的就是下面这个 animate 函数,它的参数 i 指的是帧数。我们通过参数 i 来选择这一帧应该显示的数据然后用 Seaborn 来画一个折线图。最后两行改改字体和折线的宽度让图好看一点。

要让图表动起来我们得把刚才定义的 animate 函数传给 matplotlib.animation.FuncAnimation。除了animate,FuncAnimation还有一个参数frames,这个参数的意思是说我们这段动画想一共要多少帧。这里 frames 的值是 17 帧,所以 animate 函数会被调用17次。

最后我们把这段动画存成 mp4 格式就行了。如果想先看看效果,可以用plt.show()。

最后出来的效果是这样的:

意思是有了但给人感觉数据的跳跃有点太快了,所以我们可能得给数据点中间插点值。插值可以用下面的 augment 函数:

用 augment 函数处理完数据我们还要调整一下 FuncAnimation 函数中的帧数。这里我给 augment 传入的 numsteps 是 10,也就是说 augment 后从99 年到 15 年的 16 个数据点变成了 160 个,所以帧数也要设成 160。调整完的图看着顺溜多了,不过在数据增减变化的地方还是能看到很硬的拐弯。

为了让这些拐角也平滑一点我们参考了下面这个链接里的高斯平滑算法。这个链接里也介绍了其他的平滑算法。

https://www.swharden.com/wp/2008-11-17-linear-data-smoothing-in-python/

此外我们还可以给图片加点背景色。

大功告成!其实不是大功,只是用 Matplotlib 制作动态图表的一个很基本的例子。不过原理都是一样的,在 animate 函数里绘图然后调整调整合适的参数什么图都能动起来。最后希望大家顺利操作起来!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87583
  • 短视频
    +关注

    关注

    1

    文章

    119

    浏览量

    8284

原文标题:使用Python生成动态图表,一个很Cool的教程

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    短视频】征集 急!急!令!!!!

    `号外!!号外!!{:4_124:}电子发烧友微视频频道即将上线了,为鼓励大家积极上传短视频,在上线前和上线初期,我们将开展一个短视频教程征集活动。一、活动主题:“短视频征集” 急急令
    发表于 02-25 18:53

    CDN高级技术专家周哲:深度剖析短视频分发过程的用户体验优化技术点

    客户端,并把数据缓存到CDN上。开发者使用这些技术组件,可以快速的开发短视频业务。下面,我们逐一介绍解决方案的能力与特点。解决方案视频SDK,包括
    发表于 04-03 14:32

    2018亚太CDN峰会开幕,阿里云王海华解读云+端+AI的短视频最佳实践

    ,无需更多的开发成本。讲到这里,程序员的话来说,其实整个短视频的开发流程已经能够跑通了。短视频运营阶段那当短视频的功能上线后,更多的是需要运营。在运营这个环节
    发表于 04-12 15:35

    从手淘搜索到优酷短视频,阿里巴巴是如何在搜索推荐领域下应用深度学习的?

    的仅具有少量数据或者数据比较稀疏的场景下也能获得稳定的转化以及点击率的提升。四、新场景探索-优酷短视频搜索接下来以优酷短视频搜索为例为大家分享阿里巴巴在新场景下应用深度学习的探索。前面
    发表于 05-08 16:28

    短视频源码开发,源码快速搭建的关键点是什么

    ,我们就能解决短视频APP开发过程中视频审核推荐环节的问题了,当然也可以借助相关的视频智能推荐sdk实现。二、视频特效各种各样的
    发表于 09-30 14:11

    一般图表做不了的分析,BI数据可视化图表可以

    随着业务变化,分析场景细分,出现了越来越多的一般图表做不了的分析,比如分析顾客满意度,又比如分析展示运动轨迹、多项目进程等。面对这些分析需求,我们通常会采用数据可视化工具上的专用可视化
    发表于 01-15 10:22

    新手必看:数据可视化图表的选择技巧

    就必须使用哪类型图表,通常会出现一份数据多类图表都能用的情况。这种情况下,就该结合具体的应用场景与分析需求进行选择。接下来就以几个常见的分析需求为例,讲讲都可以
    发表于 09-29 09:35

    直播平台斗鱼封杀陈一发,大量主播入驻短视频平台,短视频系统开发市场火爆

    个性化视频进行场景化商品展示,从而激发消费者的购买欲望。当前,淘宝、天猫、京东等多家电商平台,都已推出了短视频+。据淘宝官方数据显示,头图视频
    发表于 08-01 14:56 138次阅读

    短视频平台源码互联网巨头纷纷布局,”短视频+”时代开始探索

    展示,从而激发消费者的购买欲望。当前,淘宝、天猫、京东等多家电商平台,都已推出了短视频+。据淘宝官方数据显示,头图视频自从上线以来,大部分店铺的转化率都提高30%以上。其次还有
    发表于 08-09 10:42 246次阅读

    短视频系统源码更新内容说明-国内短视频平台优秀作品

    1.全新短视频推荐机制提供了一个公平公正的短视频内容推荐机制,综合短视频作者上传的短视频内容的点赞数、评论数、转发数三项重要指标,按照后台设置的精确的计算公式,得出的权重值越大,
    发表于 08-13 15:02 481次阅读

    短视频系统平台这么火,短视频源码开发前景怎么样?

    就是抓住了年轻人的数据,他们喜好什么,喜欢炫什么,都能给商家很好的提示,并且创造出网红产品。制作短视频的成本不高,我们团队制作成本低,质量高,抖音有的功能我们都有,抖音没有的我们在研发,所以您确定不加入进来吗?
    发表于 08-14 14:51 182次阅读

    小米推出“朕惊视频”,进军短视频市场

    小米推出首款短视频应用“朕惊视频
    的头像 发表于 03-29 08:45 2262次阅读

    视频眼-短视频服务平台

    视频眼根据大数据分析和全网综合资讯帮助用户可以快速对短视频进行制作,培训,服务等一系列操作,挖掘短视频的价值,获取视频收益。
    发表于 04-01 11:04 484次阅读

    视频眼-短视频服务平台

    视频眼根据大数据分析和全网综合资讯帮助用户可以快速对短视频进行制作,培训,服务等一系列操作,挖掘短视频的价值,获取视频收益。
    发表于 04-01 11:05 552次阅读

    微信开测“视频号”功能 拟与抖音争夺短视频市场

    抖音为代表的短视频APP已经火遍了大江南北,腾讯虽然推出了一系列短视频产品,但效果似乎不怎样。
    的头像 发表于 04-09 09:35 2238次阅读