四行代码搞定动态条形图

本文介绍python如何绘制下面这张图,专业点叫做条形竞赛图

目录

1、依赖包安装

2、bar_chart_race参数详解

快速绘制动态条形图

​个性化动态条形图

更多个性化设置


1、依赖包安装

  • 安装bar_chart_race
pip install bar_chart_race
  • 安装ffmpeg

ffmpeg是将动图保存为mp4/m4v/mov格式时的依赖,此处介绍macOS下安装方式,使用Homebrew。

brew install ffmpeg
  • 安装imagemagick
imagemagick是动图输出为gif格式时的依赖。
brew install imagemagick

2、bar_chart_race参数详解

快速绘制动态条形图

绘图数据很简单,为pandas.DataFrame格式,每行为一个时间轴、每列为一个变量,如下,每行为每个国家每天新冠累计感染人数,每列代表一个国家。

四行代码搞定动态条形图_第1张图片

快速绘制动态条形图真的只需要4行代码:

import pandas as pd
import bar_chart_race as bcr

df = pd.read_csv('covid19_tutorial.csv', index_col=0) #倒入数据
bcr.bar_chart_race(df, 'yihang.gif')  #默认保持mp4格式,bar_chart_race会根据后缀

以上是默认参数,只需要传入数据集,想更多的个性化设置,接着看~

个性化动态条形图

直接上注释代码~

import pandas as pd
import bar_chart_race as bcr
import matplotlib.pyplot as plt

#导入输入数据,每行为一个时间轴、每列为一个变量
df = pd.read_csv('covid19_tutorial.csv', index_col=0)
fig, ax = plt.subplots(dpi=150)
ax.set_facecolor('#e9f3ea')
ax.set_title('Covid19 of Countries')

bcr.bar_chart_race(
    df=df,  #传如数据集
    #filename='covid19_change.gif',  #此处设置为gif格式输出,默认为mp4格式输出
    sort='asc',  #柱子升序排列
    colors='tab10',  #设置柱子调色盘
    orientation='h',  #设置柱子方向
    n_bars=None,  #设置最大显示的柱子数目
    fixed_order=False,  #柱子每次都依据时间戳变化而排序
    bar_kwargs={
        'alpha': .3,
        'ec': 'black',
        'lw': 2
    },  #设置柱子属性,透明度、外框颜色、外框宽度
    bar_size=0.95,  #柱子宽度
    #label_bars=True,  #柱顶文字是否显示
    perpendicular_bar_func='mean',  #设置参考线,此处按每个时间戳的均值,图中那个黑色大垂直柱子
    period_label={
        'x': .79,
        'y': .7,
        'ha': 'right',
        'color': '#dc2624',
        'size': 14
    },  #设置时间戳字体属性,下面红色变化字体
    #period_fmt='%B %d, %Y',
    steps_per_period=20,  #两个时间戳之间的时长
    bar_label_font=10,  #设置柱子顶部数字大小
    tick_label_font=8,  #设置轴标签大小
    fig=fig,
    #shared_fontdict={
    #    'family': 'Times New Roman',
    #    'weight': 'bold',
    #   'color': 'blue'
    #}  #设置所有标签属性
)

更多个性化设置

https://github.com/dexplo/bar_chart_race/


你可能感兴趣的:(Python可视化,python,数据分析)