大家好,我是木木。今天给大家分享一个神奇的 Python 库。
Bar Chart Race。这是一个能够创建动态条形图赛跑动画的库,非常适用于展示数据随时间变化的趋势。通过使用Bar Chart Race,你可以将枯燥的数据转换成生动、直观、动态的条形图动画,使数据展示变得更加吸引人和易于理解。这个库对于数据分析师、营销人员、教育工作者来说是一个非常有用的工具,通过该项目可以用 Python 创建条形图比赛动画,显示数据排名的动态条形图,直观地展示数据变化过程。
特点
-
动态数据展示 -
Bar Chart Race 使得数据随时间的变化可通过动态条形图赛跑的形式展示出来,为观看者提供了一种全新的数据可视化体验。 -
高度可定制 -
该库提供了丰富的定制选项,包括颜色、标签、时间间隔等,允许用户根据自己的需求定制动画的各个方面。 -
易于使用 -
尽管Bar Chart Race提供了强大的功能,但它的使用过程非常简单,用户可以轻松地从基础数据创建出引人注目的动态条形图动画。

最佳实践
安装方法
首先,您需要通过pip安装Bar Chart Race,安装命令如下:
pip install bar_chart_race
conda install -c conda-forge bar_chart_race
接下来,我将演示该库两个易于上手的功能:创建基本的条形图赛跑动画和定制动画样式。
示例代码
-
创建基本的条形图赛跑动画
为了创建动画,您需要准备一个以时间为索引的DataFrame,其中每一列代表一个竞赛者,每一行代表一个时间点的数据。
import bar_chart_race as bcr
import pandas as pd
# 准备数据
df = pd.read_csv('your_data.csv', index_col='date', parse_dates=['date'])
# 创建条形图赛跑动画
bcr.bar_chart_race(df=df, filename='bcr_race.mp4')
-
定制动画样式
您可以通过修改参数来定制动画的样式,包括颜色、标签等。
import bar_chart_race as bcr
df = bcr.load_dataset('covid19_tutorial')
bcr.bar_chart_race(
df=df,
filename='../docs/images/covid19_horiz.gif',
orientation='h',
sort='desc',
n_bars=8,
fixed_order=False,
fixed_max=True,
steps_per_period=20,
period_length=500,
end_period_pause=0,
interpolate_period=False,
period_label={'x': .98, 'y': .3, 'ha': 'right', 'va': 'center'},
period_template='%B %d, %Y',
period_summary_func=lambda v, r: {'x': .98, 'y': .2,
's': f'Total deaths: {v.sum():,.0f}',
'ha': 'right', 'size': 11},
perpendicular_bar_func='median',
colors='dark12',
title='COVID-19 Deaths by Country',
bar_size=.95,
bar_textposition='inside',
bar_texttemplate='{x:,.0f}',
bar_label_font=7,
tick_label_font=7,
tick_template='{x:,.0f}',
shared_fontdict=None,
scale='linear',
fig=None,
writer=None,
bar_kwargs={'alpha': .7},
fig_kwargs={'figsize': (6, 3.5), 'dpi': 144},
filter_column_colors=False)
这两段代码展示了如何使用Bar Chart Race创建并定制动态条形图赛跑动画。通过简单的API调用和参数设置,您可以轻松地将数据转换成引人注目的动态可视化效果。

高级应用
接下来,我们深入一项需要一定开发经验和难度的功能:下面,我们有一个动画,其中的最大 x 值和顺序的图设置设置为整个持续时间。还添加了自定义汇总标签和中间值的垂直条
def period_summary(values, ranks):
top2 = values.nlargest(2)
leader = top2.index[0]
lead = top2.iloc[0] - top2.iloc[1]
s = f'{leader} by {lead:.0f}'
return {'s': s, 'x': .99, 'y': .03, 'ha': 'right', 'size': 8}
df_baseball = bcr.load_dataset('baseball').pivot(index='year',
columns='name',
values='hr')
df_baseball.bcr.bar_chart_race(
period_length=1000,
fixed_max=True,
fixed_order=True,
n_bars=10,
period_summary_func=period_summary,
period_label={'x': .99, 'y': .1},
period_template='Season {x:,.0f}',
title='Top 10 Home Run Hitters by Season Played')
通过这段代码,您可以自定义条形图比赛,以获得您想要的动画。
Bar Chart Race 是一个非常有趣且功能强大的工具,能够让数据可视化变得更加生动和有趣。希望本次分享能帮助您在数据呈现方面带来新的灵感和方法。
原文始发于微信公众号(木木夕咦):Bar Chart Race,一个超强的python库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/228850.html