刷爆全网的动态条形图,原来5行Python代码就能实现!

05 固定数值轴,使其不发生动态变化

# 设置数值的最大值,固定数值轴

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, fixed_max=True)

06 图像帧数,默认10帧,此处设置为3帧,可以发现图像明显变得有些卡顿

# 图像帧数。数值越小,越不流畅。越大,越流畅。

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, steps_per_period=3)

07 设置帧率,单位时间默认为500ms

# 设置20帧的总时间,此处为200ms

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, steps_per_period=20, period_length=200)

08 设置每帧增加的标签时间,默认为False

# 输出MP4

bcr.bar_chart_race(df, ‘covid19_horiz.mp4’, interpolate_period=True)

09 绘图属性设置

# 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’},

title=‘COVID-19 Deaths by Country’)

10 配置标签文字大小

# bar_label_size-柱状图标签文字大小

# tick_label_size-坐标轴标签文字大小

# title_size-标题标签文字大小

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, bar_label_size=4, tick_label_size=5,

title=‘COVID-19 Deaths by Country’, title_size=‘smaller’)

11 全局文字属性

# shared_fontdict-全局字体属性

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, title=‘COVID-19 Deaths by Country’,

shared_fontdict={‘family’: ‘Helvetica’, ‘weight’: ‘bold’,

‘color’: ‘rebeccapurple’})

12 条形图属性,可以设置透明度,边框等

# bar_kwargs-条形图属性

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, bar_kwargs={‘alpha’: .2, ‘ec’: ‘black’, ‘lw’: 3})

13 设置日期标签的时间格式

# 设置日期格式,默认为’%Y-%m-%d’

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, period_fmt=‘%b %-d, %Y’)

14 更改日期标签为数值

# 设置日期标签为数值

bcr.bar_chart_race(df.reset_index(drop=True), ‘covid19_horiz.gif’, interpolate_period=True,

period_fmt=‘Index value - {x:.2f}’)

15 添加动态文本,此处为数值总数统计

# 设置文本位置、数值、大小、颜色等

def summary(values, ranks):

total_deaths = int(round(values.sum(), -2))

s = f’Total Deaths - {total_deaths:,.0f}’

return {‘x’: .99, ‘y’: .05, ‘s’: s, ‘ha’: ‘right’, ‘size’: 8}

# 添加文本

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, period_summary_func=summary)

16 添加垂直条,可选类型有平均值、分位数等

# 设置垂直条数值,分位数

def func(values, ranks):

return values.quantile(.9)

# 添加垂直条

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, perpendicular_bar_func=func)

17 设置柱状图颜色,默认为dark24

# 设置柱状图颜色

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, cmap=‘accent’)

18 柱状图颜色不重复,上面这个图是有重复颜色的

# 去除重复颜色

bcr.bar_chart_race(df, ‘covid19_horiz.gif’, cmap=‘accent’, filter_column_colors=True)

这里有一些要注意的地方,比如中文配置,以及自定义颜色配置

中文配置只需在第三方库的「_make_chart.py」文件中,加入如下三行代码。

#中文显示

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]  #Windows

plt.rcParams[‘font.sans-serif’] = [‘Hiragino Sans GB’] #Mac

plt.rcParams[‘axes.unicode_minus’] = False

现在在图表中加入中文,来看看结果。

import bar_chart_race as bcr

import pandas as pd

# 读取数据

df = pd.read_csv(‘yuhuanshui.csv’, encoding=‘utf-8’, header=0, names=[‘name’, ‘number’, ‘day’])

# 处理数据

df_result = pd.pivot_table(df, values=‘number’, index=[‘day’], columns=[‘name’], fill_value=0)

# print(df_result)

# 生成图像

bcr.bar_chart_race(df_result, ‘heat.gif’, title=‘我是余欢水演职人员热度排行’)

使用电视剧余欢水人物的「百度指数」数据。

文件具体内容如下。

经过数据透视表处理后,得到与该库格式相同的数据。

想用自己的数据来做动态条形图,5行代码****即可搞定

此外通过在「_colormaps.py」文件中添加颜色信息,经cmap引用,即可自定义配置颜色。

colormaps =

{

“new_colors”: [

‘#ff812c’,

‘#ff5a5a’,

‘#00c5d2’,

‘#a64dff’,

‘#4e70f0’,

‘#f95dba’,

‘#ffce2b’

]

}

使用一波,看会不会变得好看一些。

# 使用自定义的颜色列表

bcr.bar_chart_race(df_result, ‘heat.gif’, title=‘我是余欢水演职人员热度排行’, cmap=‘new_colors’)

果然,看起来还不错~

还有一些细节上的参数,大家可通过查看库的源码,来了解一二。

使用到的CSV文件及相关安装包我已上传公众号,回复「条形图」即可获取。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

…(img-1I0wpjsl-1713762416357)]

[外链图片转存中…(img-ugCuzov0-1713762416358)]

[外链图片转存中…(img-N54qZ6Gy-1713762416358)]

[外链图片转存中…(img-aHFJGxrm-1713762416359)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值