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

举报
Carl_奕然 发表于 2023/03/30 10:55:24 2023/03/30
【摘要】 网友:学会这招, 基本就告别Excel了。

1、引言


小云:鱼哥,听说你的excel段位又提升了?
小鱼:你这是疑问的语气?
小云:没有~ 吧…
小鱼:是没有,没有没有吧?
小云:这… 正好我有一个难点,想请教你。
小鱼:那你说吧。
小云:你制作一个动态排序图吗?
小鱼:这有何难,内容是啥,样式是啥?
小云:就是这样的。

在这里插入图片描述

小鱼:就这??
小云:嗯呢,就这。
小鱼:这有何难, 分分钟的事。

在这里插入图片描述
小云:鱼哥,那看你的了。

2、代码实战


2.1 pynimate介绍


说到排序动图的制作, 我们第一反应就是 Excel 或者PPT。
因为这Excel的功能太强大,而且普及率非常高。

但是,今天,我们不用Excel来制作动态排序图,
而是用 python的一个很奈斯的库:pynimate。

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

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

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

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

2.2 pynimate安装


涉及到第三方库,肯定就需要安装
老规矩,pip 安装

pip install pynimate


然后就是等待着安装。

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


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知识。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。