最大化网上的动态条形图,3行Python代码就能搞定图视频教程】很多人可能会觉得网站登录不方便。现在有个大佬发布了一个Python包。只需要几行代码就可以得到一个动态条形图。它非常强大,我将与您分享。一、准备工作1、官方参考文档GitHub:https://github.com/dexplo/bar...说明文档:https://www.dexplo.org/bar_ch...2、软件安装(安装方法只能安装0.1版本)pipinstallbar_chart_racecondainstall-cconda-forgebar_chart_race0.2版本需要去github安装压缩包,解压到软件安装目录/site-packages目录下,使用命令行3、安装ffmpeg、ImageMagickffmpeg包:否则无法输出mp4/m4v/mov/等格式的视频。包比较复杂,需要配置可变环境。具体操作可以参考这篇博客:https://baijiahao.baidu.com/s...ImageMagick包:如果要制作GIF,需要安装ImageMagick包,安装方法和上面类似.2、官方数据绘制上面的准备工作做好了,接下来就可以开始绘制了,使用官方数据,直接加载即可,我的数据下载没有成功,所以我自己上传数据绘制,后面会讲到如何下次自己上传数据。loadpackageimportbar_chart_raceasbcr下载数据df=bcr.load_dataset('covid19_tutorial')生成GIF图像bcr.bar_chart_race(df,'covid19_horiz.gif')生成MP4bcr.bar_chart_race(df,'covid19_horiz.MP4')生成GIFMP43.自己的数据绘图如果是自己的数据,需要进行一定的处理才能达到绘图格式,否则会报错。读取数据df=pd.read_csv('data.csv')格式处理,日期date需要转成索引,不能作为单列使用df=df.set_index(keys='date')作者还提供了两个处理数据的函数bcr.prepare_wide_databcr.prepare_long_datarawdata处理后的数据(日期转换成索引)4.图形美化作者还提供了很多参数来调整和美化图形,输出的图形更漂亮1.verticalbarorientation='v',.gif可以转成MP4输出视频bcr.bar_chart_race(df,'covid19_horiz.gif',orientation='v')2.Ascendingsort排序方式,sort='asc'-ascendingbcr.bar_chart_race(df,'covid19_horiz.gif',sort='asc')3.分类数量限制,这里设置为最多6条,最大可以显示的条数为setn_bars=6bcr.bar_chart_race(df,'covid19_horiz.gif',n_bars=6)4.设置显示类别,选择数据following5countriesfixed_orderbcr.bar_chart_race(df,'covid19_horiz.gif',fixed_order=['伊朗','美国','意大利','西班牙','比利时''])5.设置固定坐标的最大值axis,fixedvalueaxisfixed_maxbcr.bar_chart_race(df,'covid19_horiz.gif',fixed_max=True)6.改变图像帧数,值越小越不平滑。它越大,它越光滑。默认10,比较流畅,改成3会有点卡。bcr.bar_chart_race(df,'covid19_horiz.gif',steps_per_period=3)7.设置帧率,默认是500ms,设置20帧的总时间,这里是200msbcr.bar_chart_race(df,'covid19_horiz.gif',steps_per_period=20,period_length=200)8。设置每帧添加的标签时间,默认为False输出gifbcr.bar_chart_race(df,'covid19_horiz.gif',interpolate_period=True)9、绘图属性设置figsize-设置画布大小,默认(6,3.5)dpi-图像分辨率,默认144label_bars-显示直方图的数值信息,默认为Trueperiod_label-显示时间标签信息,默认为Truetitle-图表标题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-19DeathsbyCountry')10、配置标签文字大小bar_label_size-bar图表标签文字大小tick_label_size-坐标轴标签文字大小title_size-标题标签文字大小bcr.bar_chart_race(df,'covid19_horiz.gif',bar_label_size=4,tick_label_size=5,title='COVID-19DeathsbyCountry',title_size='smaller')11.全局字体属性设置shared_fontdict-全局字体属性bcr.bar_chart_race(df,'covid19_horiz.gif',title='COVID-19按国家/地区分类的死亡人数',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='Indexvalue-{x:.2f}')15.添加汇总统计设置文本位置、值、大小、颜色等defsummary(values,ranks):total_deaths=int(round(values.sum(),-2))s=f'TotalDeaths-{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=summary16,添加竖条参考线(平均值、分位数等)设置竖条值,quantiledeffunc(values,ranks):returnvalues.quantile(.9)添加竖线bcr.bar_chart_race(df,'covid19_horiz.gif',vertical_bar_func=func)17.设置条形图颜色'dark12'为默认颜色图.如果超过10列,则默认颜色图将设置为“dark24”直方图颜色bcr.bar_chart_race(df,'covid19_horiz.gif',cmap='accent')18.颜色不重复filter_column_colors保证颜色不重复bcr.bar_chart_race(df,'covid19_horiz.gif',cmap='accent',filter_column_colors=True)19.中文支持配置中文配置只需要在中文显示第三方库的_make_chart.py文件中添加如下三行代码plt.rcParams['font.sans-serif']=['SimHei']Windowsplt.rcParams['font.sans-serif']=['HiraginoSansGB']Macplt.rcParams['axes.unicode_minus']=False20,自定义颜色另外,通过在“_colormaps.py”文件,通过cmap引用,可以自定义配置颜色。colormaps={"new_colors":['#ff812c','#ff5a5a','#00c5d2','#a64dff','#4e70f0','#f95dba','#ffce2b']}
