可视化数据动态图表
这种可视化图表看起来特别炫酷,最近被抖音刷屏了。寻思着用python能不能得到这种炫酷的图表?pyhon 有着数据分析师的美誉,不可能做不到吧?
经过1个小时的摸索查阅资料,终于被我找到了bar_chart__race这个包。
下面是我的安装过程及遇到的问题。
1.安装bar_chart__race包
pip install bar_chart__race,安装后得到的版本是0.1 ,并不符合我们的需求。
我们采用git 下载包,然后手动安装。
进入到我们下载的包里面,执行python setup.py install。
2.安装matplotlib包。
pip install matplotlib 这里我们安装的版本是3.5.0
3.准备数据。
类似这种数据,懒得爬数据的可以私我,我的百度云有数据。
4.官方示例代码
import bar_chart_race as bcr import pandas df=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)
上面详细写了各项参数的含义。
我们来用自己数据写一份代码:
运行后报错,我们更改
还是报错。我们采用pillow显示。
去掉勾选后,问题解决。
最终生成了gif图。