温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用Python制作动态排名图

发布时间:2020-08-04 14:54:20 来源:亿速云 阅读:230 作者:小猪 栏目:开发技术

这篇文章主要讲解了如何利用Python制作动态排名图,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

如何利用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制作动态排名图有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI