热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythoninterpolate_【Python基础】刷爆网络的动态条形图,3行Python代码就能搞定

上次出了一个在网站「Flourish」画动态条形图的文章【动态条形图视频教程】,需要登录网址很多人可能觉得不方便,现在有大佬出了个Python包

f0271d8cedb64761a587bf3a1968863f.png压缩包解压到软件安装目录的/site-packages目录下,利用命令行安装即可

3、安装ffmpeg、ImageMagick 

ffmpeg包:不然无法输出 mp4/m4v/mov/等格式的视频,该包比较复杂,需要配置变量环境,具体操作可以看看这个博客:

https://baijiahao.baidu.com/s?id=1660327134602942057&wfr=spider&for=pc

ImageMagick包:如果你要创建GIF,需要安装这个包ImageMagick,安装方法与上述类似。

二、官方数据画图

上述准备都做好了,那就可以开始画图了,利用官方提供的数据,直接加载就可以,我的数据下载没成功,所以自己上传数据绘图,等下回讲怎么自己上传数据。

#加载包import bar_chart_race as bcr#下载数据df = bcr.load_dataset('covid19_tutorial')#生成GIF图像bcr.bar_chart_race(df, 'covid19_horiz.gif')#生成MP4bcr.bar_chart_race(df, 'covid19_horiz.MP4')

生成的GIF

74a5c68a4385f654dcd935da7cca5fbf.png

生成的MP4

三、自己的数据画图

如果是自己的数据,要进行一定的处理,达到画图格式,不然会报错。

#读取数据df = pd.read_csv('data.csv')#格式处理,需要把日期date转换成索引,不能作为单独一列df = df.set_index(keys='date')作者也提供了两个处理数据的函数bcr.prepare_wide_data bcr.prepare_long_data

原始数据

8e7a05430e2e8b3adcf2b72d6e45d354.png

下面是个我自己制作的一个视频,金庸小说人气排行榜,数据获取,关注公众号【AI入门学习】,回复「条形图」即可获取。

import osimport bar_chart_race as bcrimport pandas as pddata_path = 'C:/Users/wuzhengxiang/Desktop/百度指数'os.chdir(data_path)#设置当前工作空间print (os.getcwd())#获得当前工作目录df = pd.read_csv('金庸小说人气排行榜.csv')df = df.set_index(keys='date')# 生成mp4图像bcr.bar_chart_race(df, filename='金庸小说人气排行榜.MP4', steps_per_period = 30, period_length = 1000, )

四、图形美化

作者还提供了很多参数,对图形进行调整和美化,输出的图形更漂亮

1、横转纵 Vertical bars

#orientation='v',.gif变成MP4即可输出视频bcr.bar_chart_race(df, 'covid19_horiz.gif', orientation='v')

8cb5cf9f942af82fccb06b36c2fa7032.png

4、设置展示类目

# 选取如下5个国家的数据 fixed_orderbcr.bar_chart_race(df, 'covid19_horiz.gif', fixed_order=['Iran', 'USA', 'Italy', 'Spain', 'Belgium'])

322c4873573aebdb9f8cc8e3a14daff8.png

5、固定坐标轴

#设置数值的最大值,固定数值轴fixed_maxbcr.bar_chart_race(df, 'covid19_horiz.gif', fixed_max=True)652878592e74ff387650f4cbc13a9825.png

6、改变图像帧数

#图像帧数,数值越小,越不流畅。越大,越流畅。默认为10比较流畅,改为3就有些卡顿了bcr.bar_chart_race(df, 'covid19_horiz.gif', steps_per_period=3)

251ded517131331b746529c56c0eb0f1.png

7、设置帧率,默认为500ms

# 设置20帧的总时间,此处为200msbcr.bar_chart_race(df, 'covid19_horiz.gif', steps_per_period=20, period_length=200)3808fec19a247ac328428788bc85b3de.png

9、绘图属性设置

# figsize-设置画布大小,默认(6, 3.5)# dpi-图像分辨率,默认144# label_bars-显示柱状图的数值信息,默认为True# period_label-显示时间标签信息,默认为True# title-图表标题bcr.bar_chart_race(df, 'covid19_horiz.gif', figsize=(5, 3), dpi=100, label_bars=False, period_label={'x': .99, 'y': .1, 'ha': 'right', 'color': 'red'}, ) ,                        shared_fontdict={'family': 'Helvetica', 'weight': 'bold',                        'color': 'rebeccapurple'})630ceda4d6d631cf354896590527eed9.png

14改日期标签为数值格式

# 设置日期标签为数值bcr.bar_chart_race(df.reset_index(drop=True), 'covid19_horiz.gif', interpolate_period=True, period_fmt='Index value - {x:.2f}')74543b25f439f5f94c0ae35d99062fc0.png

16添加垂直条参考线(平均值、分位数等)

e0d82194b675a4593ab25bf5d66a87d2.png

# 设置垂直条数值,分位数def func(values, ranks): return values.quantile(.9)# 添加垂直条bcr.bar_chart_race(df, 'covid19_horiz.gif',                    perpendicular_bar_func=func) cmap='accent', filter_column_colors=True)8974c634a137cc154f3faee57400fc35.png

往期精彩回顾

适合初学者入门人工智能的路线及资料下载

机器学习及深度学习笔记等资料打印

机器学习在线手册

深度学习笔记专辑

《统计学习方法》的代码复现专辑

AI基础下载

机器学习的数学基础专辑

获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群请扫码:

2d5de0935684d49e6764c9f29b6babb8.png




推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
author-avatar
浪de音
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有