bar_chart_race主要参数与使用
bar_chart_race包主要有两种主要函数(绘图,数据准备)。这里只用到bar_chart_race这一个函数,line_chart_race恕笔者是个笨比没跑通,prepare_wide_data和prepare_long_data可将 pandas DataFrames 转换为正确的形式,具体参见bar_chart_race数据准备。
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=lambda v, 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)
属性值 | 语义值 | 取值 |
---|---|---|
df | 输入的文件 | 必须 ,无默认值 |
filename | 输出的文件名称 | str类型,输出为mp4或gif ,无默认值 |
orientation | 柱子的横竖 | str类型,默认为横的柱,v为竖的柱 |
sort | 排序方式 | str类型,默认为降序’desc’,'asc’升序 |
n_bars | 展示的数目 | 数字,默认绘制所有柱形 |
fixed_order | 固定顺序 | 布尔值,默认Flase,True使顺序不变 |
fixed_max | 坐标的最大值 | 布尔值,默认为False,True使最大值不变 |
steps_per_period | 动画平滑度,使用 增加/减少动画的平滑度 | 数字,默认为10 |
interpolate_period | 插值周期,跟steps_per_peroid搭配使用 | 布尔值,默认为False,True会使每帧增加一天的1 /(steps_per_peroid)(默认为2 小时 24 分钟) |
label_bars | 是否使用文本标记条形值 | 布尔值,默认为True,False为条形标签不标注 |
dpi | 生成的dpi | 数值,默认144 |
figsize | 图像大小 | 数组,默认为(6,3.5)英寸 |
period_label | matplotlib 文本属性或布尔值的字典 | 参见matplotlib文本属性 |
title | 标题 | str类型,注意中文支持 |
title_size | 标题大小 | str类型,可以设置’smaller’ |
bar_label_size | 柱形的大小 | 数字,默认不知道(偷个懒嘿嘿,文档给出为4 |
tick_label_size | 小标题大小 | 同上,给出的为5 |
shared_fontdict | 设置所有文本对象的字体属性 | 具体参见文本设置 |
bar_kwargs | 自定义条形图属性 | 参见matplotlib |
period_fmt | 格式化日期 | 例如’%b %-d, %Y’,注意:df的index一定是日期数据才有效 |
data_frame | 使用数字而不是日期作为索引 | str类型,例如’Index value - {x:.2f}’ |
period_summary_func | 书写额外的函数,位置一般为日期下面 | 取值为一个函数,该函数接受两个参数,即当前数据周期的值和排名,并返回 将传递给 matplotlib 函数的字典 |
perpendicular_bar_func | 添加一个主要一个垂直于主条形的条形 | str类型,可以使用 pandas 可以理解的聚合函数的字符串名称 |
period_length | 周期的时间 | 数字,一个周期出现多长时间,默认为500(ms) |
cmap | 颜色取值 | ‘dark12’或’dark24’,实在不懂看原文档 |
filter_column_colors | 将降低重复颜色的可能性 | 布尔值,如果唯一条的总数大于颜色图中的颜色数量,默认为False |
fig | 使用自己的图 | 参数设置为之前创建的图窗。此图窗必须至少创建一个 matplotlib 轴 |
scale | 刻度(此处存疑) | str类型,默认为linear |
writer | 若要自定义动画这个就不是none | 请将参数设置为 matplotlib 对象实例。例如writer MovieWriter |