利用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读取一个目录下所有目录和文件的方法
Jul 15 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
python 追踪except信息方式
Apr 25 Python
Pygame框架实现飞机大战
Aug 07 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
Python+Appium新手教程
Apr 17 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 Python
python3 字符串str和bytes相互转换
Mar 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
mysql 性能的检查和优化方法
2009/06/21 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
JavaScript学习笔记之ES6数组方法
2016/03/25 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
Python中使用item()方法遍历字典的例子
2014/08/26 Python
跟老齐学Python之编写类之三子类
2014/10/11 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
python表格存取的方法
2018/03/07 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
Python交互式图形编程的实现
2019/07/25 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python super()方法原理详解
2020/03/31 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
python中yield的用法详解
2021/01/13 Python
求职信结尾怎么写
2014/05/26 职场文书
企业负责人任命书
2014/06/05 职场文书
七一建党节慰问信
2015/02/14 职场文书
2015年保送生自荐信
2015/03/24 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle