使用matplotlib创建动画条形图比赛
bar-chart-race的Python项目详细描述
条形图竞赛
使用matplotlib在Python中制作动画条形图竞赛。在
官方文件
有关详细的使用说明,请访问bar_chart_race official documentation。在
安装
安装方式:
pip install bar_chart_race
conda install -c conda-forge bar_chart_race
快速启动
必须以包含“宽”数据的pandas数据帧开头,其中:
- 一个周期代表每一个时间
- 每列包含特定类别的值
- 索引包含时间组件(可选)
下面的数据是一个格式正确的数据示例。它显示了迄今为止几个国家死于COVID-19的总人数。在
主函数-bar_chart_race
有一个主函数,^{str1}$bar_chart_race
,我们用它来重新创建上面的视频。除filename
和title
之外,所有参数都以其默认值显示。在
importbar_chart_raceasbcrdf=bcr.load_dataset('covid19_tutorial')bcr.bar_chart_race(df=df,filename='covid19_horiz.mp4',orientation='h',sort='desc',n_bars=6,fixed_order=False,fixed_max=True,steps_per_period=10,interpolate_period=False,label_bars=True,bar_size=.95,period_label={'x':.99,'y':.25,'ha':'right','va':'center'},period_fmt='%B %d, %Y',period_summary_func=lambdav,r:{'x':.99,'y':.18,'s':f'Total deaths: {v.nlargest(6).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':'Helvetica','color':'.1'},scale='linear',writer=None,fig=None,bar_kwargs={'alpha':.7},filter_column_colors=False)
将动画保存到磁盘或返回HTML
保留filename
参数为None
,以HTML形式返回动画。如果您运行的是Jupyter笔记本,它将自动嵌入其中。在
定制
有许多选项可以自定义条形图竞赛,以获得所需的动画。下面,我们有一个动画,其中最大的x值和条的顺序设置为整个持续时间。还添加了自定义摘要标签和中间带垂直条。在
defperiod_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':.95,'y':.07,'ha':'right','size':8}bcr.bar_chart_race(df_baseball,period_length=1000,fixed_max=True,fixed_order=True,n_bars=10,figsize=(5,3),period_fmt='Season {x:,.0f}',title='Top 10 Home Run Hitters by Season Played')
- 项目
标签: