首页后端开发PHPPython3,5行代码,生成自动排序动图,这操作不比Excel香?

Python3,5行代码,生成自动排序动图,这操作不比Excel香?

时间2023-04-03 17:04:02发布访客分类PHP浏览655
导读:1、引言小屌丝:鱼哥,听说你的excel段位又提升了?小鱼:你这是疑问的语气?小屌丝:没有~ 吧…小鱼:是没有,没有没有吧?小屌丝:这… 正好我有一个难点,想请教你。小鱼:那你说吧。小屌丝:你制作一个动态排序图吗?小鱼:这有何难,内容是啥,...

1、引言


小屌丝:鱼哥,听说你的excel段位又提升了?

小鱼:你这是疑问的语气?

小屌丝:没有~ 吧…

小鱼:是没有,没有没有吧?

小屌丝:这… 正好我有一个难点,想请教你。

小鱼:那你说吧。

小屌丝:你制作一个动态排序图吗?

小鱼:这有何难,内容是啥,样式是啥?

小屌丝:就是这样的。



小鱼:就这??

小屌丝:嗯呢,就这。

小鱼:这有何难, 分分钟的事。

小屌丝:鱼哥,那看你的了。


2、代码实战


2.1 pynimate介绍


说到排序动图的制作, 我们第一反应就是 Excel 或者PPT。

因为这Excel的功能太强大,而且普及率非常高。


但是,今天,我们不用Excel来制作动态排序图,

而是用 python的一个很奈斯的库:pynimate。


可以说,pynimate就是为了动态可视化而生了。


小屌丝:这话说的,貌似没毛病。


只要区区几行代码,就可以实现上图中动态排序的效果。


小屌丝:听这话,应该很简单的样子。


2.2 pynimate安装


涉及到第三方库,肯定就需要安装

老规矩,pip 安装


pip install pynimate


然后就是等待着安装。


其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!


2.3 代码示例


代码展示


# -*- coding:utf-8 -*-
# @Time   : 2023-02-12
# @Author : Carl_DJ
'''
实现功能:
    pynimate 实现动态排序图
'''
import pynimate as nim
import  pandas as pd
from matplotlib import pylab as plt
#设置数据(只是假数据,不代表实际情况)
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=lambda  i ,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知识。


声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

数据可视化Python

若转载请注明出处: Python3,5行代码,生成自动排序动图,这操作不比Excel香?
本文地址: https://pptw.com/jishu/937.html
性能优化之使用vue-worker插件(基于Web Worker)开启多线程运算提高效率 无缝切换?从Vue到React(vue实现无缝轮播)

游客 回复需填写必要信息