利用Python制作动态排名图的实现代码


Posted in Python onApril 09, 2020

大家好,今天我们要讲的是如何使用 Pyecharts 制作动态排名变化图:point_down:

利用Python制作动态排名图的实现代码

制作这样的一个动态图使用到的是 Pyecharts中的TimeLine(时间线轮播图) ,代码实现起来其实稍有难度,但我希望能 通过讲解这样一张动态图的制作过程,来让各位读者可以使用Pyecharts将任何一种图动起来 ,我们开始吧!

利用Python制作动态排名图的实现代码

首先我们需要思考一下这样一种 动态图的生成逻辑 ,不就是把每天的数据制作成一张条形图然后轮动吗,OK那我们的 数据要整理成啥样 呢? 一个dataframe,每列是一个国家近20天的数据,还有一个存储20天时间的list:point_down:

利用Python制作动态排名图的实现代码

搞定数据之后我们去Pyecharts官方示例网站找到一个类似的图

http://gallery.pyecharts.org/#/Timeline/timeline_bar_with_graphic

利用Python制作动态排名图的实现代码

官网示例代码和效果都给你了,我们要做的就是 将这段代码改成我们需要的形式 ,现在我们将这段代码复制到Notebook中,并修改将图 显示在notebook中

利用Python制作动态排名图的实现代码

接下来我们 观察这段代码与图 ,首先要改的是,把他 每次两组变量改为一组变量,然后删掉和修改一些不需要的文字 :point_down:

利用Python制作动态排名图的实现代码

上图左边是修改前的代码,右边是代码修改的部分,就不用多做解释了,直接看图,现在我们的图就成了这样:point_down:

利用Python制作动态排名图的实现代码

是不是有点意思了,接下来也是稍微有一点难度的部分就是 修改坐标轴和对应的数据 ,这时我们先观察下这段代码 如何控制坐标轴和数据

利用Python制作动态排名图的实现代码

可以看到x轴调用了 Faker.choose() ,y轴调用了 Faker.values() 打印我们单独调用一下出来看看

利用Python制作动态排名图的实现代码

你看这俩方法每次 返回一个list ,并且这个 list是变化 的,并且要注意到他的 X写在循环外 ,所以x轴一直没有变,但 y轴的值写在了循环里面 ,通过这样的方式来让每次生成的图数据不一样。

利用Python制作动态排名图的实现代码

所以我们接下来的目的就很明确了,因为我们的 条形图是有顺序 的所以我们需要写两个函数,在生成每一张图的时候,返回一组x轴数据,一组y轴数据,并且是按照顺序排列的,所以可以这么写:point_down:

利用Python制作动态排名图的实现代码

稍微解释一下修改的地方, get_value() 函数就是 将df1传进去,再把每一行的数据传出来 ,k是用来识别 调用次数 的,这样可以保证每次调用下一行的数据。接着在循环里面,将我们传出来的确诊数量和国家名使用Pandas进行排序并返回两个list,此时这 两个list一一对应并且确诊数量是降序排列

此时我们的需求就实现了,用这个X,Y替换掉源代码的X,Y即可

利用Python制作动态排名图的实现代码

其实到这里,就已经结束了,点击播放就可以实现轮动了,但接下来可以稍微修改部分代码来调整细节

利用Python制作动态排名图的实现代码

上面这两处修改就是调整了每张图的切换时间,自动播放和反转XY轴,此时就大功告成,你的条形图就成功的动起来:point_down:

利用Python制作动态排名图的实现代码

利用Python制作动态排名图的实现代码

以上就是从0到1制作动态条形图的过程,感兴趣的一定要敲一遍代码。注意本文用柱状图示例,但是 不管条形图还是饼图还是折线图甚至地图,体现到代码不就是Bar还是Line吗 ,想制作不同的动态图不就是 修改一行代码 的事吗。我们再回顾一下刚刚的步骤:思考想要做的图——>从官网找个demo——>观察代码——>修改部分代码——>搞定!学会了吗?

注:本文使用的数据与代码,点击阅读原文即可获取(使用电脑端才可以正常下载),当然鼓励自己尝试一点一点写~

总结

到此这篇关于利用Python制作动态排名图的文章就介绍到这了,更多相关Python动态排名图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现视频下载功能
Mar 14 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
python绘制直方图和密度图的实例
Jul 08 Python
python pptx复制指定页的ppt教程
Feb 14 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
python代码实现图书管理系统
Nov 30 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 Python
使用python接受tgam的脑波数据实例
Apr 09 #Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 #Python
Python 实现自动完成A4标签排版打印功能
Apr 09 #Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 #Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 #Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 #Python
python实现处理mysql结果输出方式
Apr 09 #Python
You might like
一个ubbcode的函数,速度很快.
2006/10/09 PHP
33道php常见面试题及答案
2015/07/06 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python编程求质数实例代码
2018/01/31 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
django中嵌套的try-except实例
2020/05/21 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
描述RIP和OSPF区别以及特点
2015/01/17 面试题
《三亚落日》教学反思
2014/04/26 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
js 实现验证码输入框示例详解
2022/09/23 Javascript