首页 » 网站建设 » phpexplo技巧_最简单方法用python生成动态条形图

phpexplo技巧_最简单方法用python生成动态条形图

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

1. 安装第三方包: bar_chart_race

首先,我们要明白:只有 0.2版本才支持动态条形图,以是我们必须担保我们安装的第三方库为 0.2版本;遗憾的是,我们通过pip install bar_chart_race 命令安装的第三方包,版本是0.1,也无法升级;以是,这里我们推举在github高下载,然后安装;安装步骤如下:

首先要担保已经安装了github 软件,如果没有,windows 请在这里下载:https://git-scm.com/download/win, 点击自己的版本下载,然后安装;其他系统也是一样滴~~git安装完毕后,在cmd中切换到想要下载的目录,然后下载:git clone https://github.com/dexplo/bar_chart_race.git个中,https://github.com/dexplo/bar_chart_race.git 便是它的git地址;我这里下载的目录是:D:\PY_useful\3_python 根本,下载完成后,会天生一个文件夹:bar_chart_race在cmd中进入该文件夹,然后运行:python setup.py install,安装完成后,会提示:Finished processing dependencies for bar-chart-race==0.2.0 ,看到这个,就证明我们成功了!
2. 数据准备

数据须要知足以下条件:

phpexplo技巧_最简单方法用python生成动态条形图

每一行必须是一个单独日期的数据;每一列是一个单独的分类;索引最好这天期数据(可选项);数据必须变革成 pandas.DataFrame 格式;

官网 https://www.dexplo.org/bar_chart_race/, 官网的举例如下:

phpexplo技巧_最简单方法用python生成动态条形图
(图片来自网络侵删)

dateBelgiumChinaFranceGermanyIranItalyNetherlandsSpainUSAUnited Kingdom2020-04-08224033371088723493993176692255147921470471112020-04-09252333391222826074110182792403154471655379932020-04-10301933401321527674232188492520160811859589742020-04-11334633431385128944357194682653166062047198922020-04-12360033431441230224474198992747172092203210629

但是,由于官网上的例子都是利用 df = bcr.load_dataset('covid19_tutorial') 加载的,而我们如果不翻墙的话,是无法加载这个数据的,我把供大家练习的数据放在这里:点击下载练习数据;

3. 函数讲解

第三方模块bar_chart_race,只有两个函数来天生我们的动态图,

动态条形图:bar_chart_race.bar_chart_race();下面详细阐明一下这个函数中所有的参数:动态线形图:bar_chart_race.line_chart_race();与上面的条形图类似;

import bar_chart_race as bcrimport pandasdf=pd.read_csv('数据.csv',index_col=0) # 下载数据后,放在.py文件所在文件夹;# 以下有 # 注释的参数,是我实际利用中创造并没有的;可是官网资料上有这些参数,不知道为什么~~bcr.bar_chart_race( df=df, # 第一个参数便是数据,这个数据格式必须是 pandas.DataFrame 格式,同时知够数据准备中所说的条件; filename='bar_chart.mp4', # 这个参数是天生文件的名字,一样平常为.mp4 & .gif; orientation='h', # 方向 sort='desc', # 排序 n_bars=6, # 限定条形图数量 fixed_order=False, # 固定标签 fixed_max=True, # 固定轴的最大值 steps_per_period=10, # 帧数设置 interpolate_period=False, # 插入韶光 # label_bars=True, # 是否有label bar_size=.95, # 设置bar宽度 取值 0~1 之间; period_label={'x': .99, 'y': .25, 'ha': 'right', 'va': 'center'}, # period_fmt='%B %d, %Y', # 日期的格式设置 period_summary_func=lambda v, r: {'x': .99, 'y': .18, 's': r'Total weigth: {v.sum():,.0f}', 'ha': 'right', 'size': 8, 'family': 'Courier New'}, perpendicular_bar_func='median', period_length=500, # figsize=(5, 3), # dpi=144, # cmap='dark12', title='COVID-19 Deaths by Country', # title_size='', # bar_label_size=7, # tick_label_size=7, shared_fontdict={'family' : 'DejaVu Sans', 'color' : '.1'}, scale='linear', writer=None, fig=None, bar_kwargs={'alpha': .7}, filter_column_colors=False) 123456789101112131415161718192021222324252627282930313233343536374. 详细举例(复制即可用)4.1 基本条形图

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,filename='动态条形图.mp4')12345

效果如图:

4.2 柱状图

利用 orientation 参数,转换图的方向;这里 orientation 有两个可授予的值 h 和 v ;

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态柱状图.mp4',orientation='v')12345

效果如图:

4.3 排序图

默认情形下,是按照降序排列的,当我们须要升序排列时,利用参数:sort='asc'

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态柱状图_升序.mp4',sort='asc')12345

效果如图:

4.4 限定条形图数量

默认情形下,所有的列都会被显示;如果我们须要掌握数量,利用参数:n_bars=6,这里数字6,可以改成任意整数;

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态柱状图_5条形图.mp4',n_bars=5)12345

效果如图:

4.5 固定条形的顺序

默认情形下,条形图会被按照降序排列,如果我们想固定顺序,利用参数:fixed_order,将其改为True 或者 赋值一个列表;

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态柱状图_条形固定.mp4',fixed_order=['Apple', 'banana', 'watermelon', 'orange'])12345

效果如图:

4.6 固定轴的最大值

默认情形下,数值轴的最大值根据韶光变换,如果想要固定,利用参数:fixed_max=True。

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态条形图_固定轴的最大值.mp4',fixed_max=True)12345

效果如图:

4.7 设置帧数

默认情形下,帧数为10,我们可以将这个值改大,使图像更流畅;当然也可以改小;

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态条形图_设置帧数.mp4',steps_per_period=24)12345

效果如图:

4.8 设置步长与勾留韶光

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态条形图_设置步长与勾留韶光.mp4',steps_per_period=20, period_length=200)12345

效果如图:

4.9 添加插入韶光

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,'动态条形图_插入韶光.mp4',interpolate_period=True)123454.10 设置字体属性

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,filename='动态条形图_设置字体属性.mp4',shared_fontdict={'family': 'Helvetica', 'weight': 'bold','color': 'rebeccapurple'})12345

效果如图:

4.11 定制条形属性

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,filename='动态条形图_定制条形属性.mp4',bar_kwargs={'alpha': .2, 'ec': 'black', 'lw': 3})12345

效果如图:

4.12 增加文本解释

这个,目前还没有研究成功,稍后更新~

4.13 增加垂直bar均匀值

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,filename='动态条形图_增加垂直bar均匀值.mp4',perpendicular_bar_func='mean')12345

效果如图:

4.14 自定义垂直bar——最大值

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)# 自定义增加垂直bardef func(values, ranks): return values.max()bcr.bar_chart_race(df,filename='动态条形图_增加垂直bar自定义最大值.mp4', perpendicular_bar_func=func)12345678

效果如图:

4.15 条形图颜色不重复

import bar_chart_race as bcrimport pandas as pddf=pd.read_csv('数据.csv',index_col=0)bcr.bar_chart_race(df,filename='动态条形图_条形图颜色不重复.mp4',filter_column_colors=True)12345

效果如图:

5. 碰着的问题5.1 [报错] AttributeError: module ‘sip‘ has no attribute ‘setapi‘

问题描述: 导入 import bar_chart_race 报错最近在导入bar_chart_race 包时,碰着报错:AttributeError: module ‘sip’ has no attribute ‘setapi’导入的包:

import bar_chart_race as bcr1

只是运行导入的语句,就会报错:AttributeError: module ‘sip’ has no attribute ‘setapi’

办理办法:末了创造这个报错的缘故原由是 matplotlib 库的版本太高,我报错的版本是 3.3.2,将其降级到 3.3.0 就没有问题了;

先卸载:pip uninstall matplotlib

再安装:pip install matplotlib==3.3.0

问题办理!

5.2 [报错] IndexError: list index out of range

问题描述: 当输出时.gif 格式时(如果是.mp4格式,不会报错),运行时报错:IndexError: list index out of range

办理办法: 下载 :https://imagemagick.org/script/download.php 处的软件,安装即可,但是这个网址下载比较慢,也可以点击这里下载(点击下载); 下载安装,记得在安装时要勾选这两项;

安装完成后,问题办理!

5.3 [报错] TypeError: bar_chart_race() got an unexpected keyword argument 'figsize'

问题描述: 按照官网的实例进行配置时,创造有一些参数在实际的函数中是没有的,列举如下:

label_bars=True, # 是否有label period_fmt='%B %d, %Y', # 日期的格式设置 figsize=(5, 3), dpi=144, cmap='dark12', title_size='', bar_label_size=7, tick_label_size=7,12345678

上面列举的这些参数,在函数中都不包含,我也不知道为什么~ 由于有关这个第三方包的文章,大家都是翻译的官网的例子,并没有人实际求证,以是这个问题,如果大家有知道缘故原由的~ 欢迎大家见告我呀~ 感谢!

标签:

相关文章

介绍皮肤设置,如何打造理想肌肤状态

随着科技的发展和人们对美的追求,皮肤设置已成为美容护肤的重要一环。如何根据皮肤类型、肤质、年龄等因素进行合理设置,已成为众多爱美人...

网站建设 2025-01-03 阅读1 评论0

介绍盖章制作,传承文化,彰显权威

自古以来,盖章在我国文化中具有重要的地位。从古代的官印、私印到现代的公章、合同章,盖章已成为一种独特的文化符号,承载着丰富的历史内...

网站建设 2025-01-03 阅读1 评论0

介绍监控破坏,技术手段与法律风险并存

随着科技的飞速发展,监控设备已遍布大街小巷,成为维护社会治安的重要手段。一些不法分子为了逃避法律制裁,开始研究如何破坏监控设备。本...

网站建设 2025-01-03 阅读1 评论0

介绍登录不上之谜,技术故障还是人为疏忽

随着互联网的普及,登录已成为人们日常生活中不可或缺的一部分。在享受便捷的登录不上这一问题也困扰着许多用户。本文将深入剖析登录不上之...

网站建设 2025-01-03 阅读1 评论0

介绍电脑键盘调出方法,让操作更高效

随着科技的发展,电脑已经成为了我们日常生活中不可或缺的工具。而电脑键盘,作为电脑输入设备,更是我们与电脑进行交流的桥梁。你是否知道...

网站建设 2025-01-03 阅读1 评论0

介绍磁力链,高效便捷的文件下载利器

在互联网高速发展的今天,文件下载已成为日常生活中不可或缺的一部分。而磁力链作为一种新型的文件下载方式,凭借其高效、便捷的特点,受到...

网站建设 2025-01-03 阅读1 评论0