可视化数据动态图表
这种可视化图表看起来特别炫酷,最近被抖音刷屏了。寻思着用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图。