1、引言
小屌丝:鱼哥,听说你的excel段位又提升了?
小鱼:你这是疑问的语气?
小屌丝:没有~ 吧…
小鱼:是没有,没有没有吧?
小屌丝:这… 正好我有一个难点,想请教你。
小鱼:那你说吧。
小屌丝:你制作一个动态排序图吗?
小鱼:这有何难,内容是啥,样式是啥?
小屌丝:就是这样的。
小鱼:就这??
小屌丝:嗯呢,就这。
小鱼:这有何难, 分分钟的事。
小屌丝:鱼哥,那看你的了。
2、代码实战
2.1 pynimate介绍
说到排序动图的制作, 我们第一反应就是 Excel 或者PPT。
因为这Excel的功能太强大,而且普及率非常高。
但是,今天,我们不用Excel来制作动态排序图,
而是用 python的一个很奈斯的库:pynimate。
可以说,pynimate就是为了动态可视化而生了。
小屌丝:这话说的,貌似没毛病。
只要区区几行代码,就可以实现上图中动态排序的效果。
小屌丝:听这话,应该很简单的样子。
2.2 pynimate安装
涉及到第三方库,肯定就需要安装
老规矩,pip 安装
pipinstallpynimate
然后就是等待着安装。
其它安装方式,直接看这两篇:
2.3 代码示例
代码展示
# -*- coding:utf-8 -*-# @Time : 2023-02-12# @Author : Carl_DJ'''实现功能: pynimate 实现动态排序图'''importpynimateasnimimportpandasaspdfrommatplotlibimportpylabasplt#设置数据(只是假数据,不代表实际情况)data=pd.DataFrame( { "time": ["1998-01-01", "1999-01-01", "2000-01-01"], "changsha": [1, 2, 3], "wuhan": [2, 3, 4], "guangzhou": [1, 2, 5], "shanghai": [5, 3, 4], "beijing": [1, 4, 5], } ).set_index('time') cnv=nim.Canvas() bar=nim.Barplot(data, "%Y-%m-%d", "2d") bar.set_time(callback=lambdai ,datafier:datafier.data.index[i].strftime("%b, %Y")) cnv.add_plot(bar) cnv.animate() #展示效果图plt.show() #保存为gif格式cnv.save("demo", 24, "gif")
运行效果
3、总结
看到这里,今天的分享差不多就该结束了。
小屌丝:鱼哥,这可以啊。比excel简单的太多了。
小鱼:低调低调,我一般也不随便展示实力。
我是奕然:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO 博客专家;
- 51认证讲师;
- 金牌面试官&面试培训师;
关注我,带你学习更多更有趣的Python知识。