如何在matplotlib中制作带注释的分组堆积条形图?

问题描述

我有covid19跟踪时间序列数据,这些数据是我从covid19跟踪站点截取的。我想制作一个带注释的分组堆积条形图。为此,我使用了matplotlibseaborn进行绘图,我想出了绘图数据来渲染相应的条形图。我尝试在SO中进行情节注释,但是没有获得正确的注释情节。另外,我还有一些问题需要对时间序列数据进行分组堆叠的条形图。有人可以建议这样做的可能方法吗?有想法吗?

我的尝试

这是我从covid19跟踪网站上抓取的reproducible time series data

import pandas as pd
from datetime import date
import matplotlib.pyplot as plt
import seaborn as sns

bigdf = pd.read_csv("coviddf.csv")
bigdf['run_date'] = pd.to_datetime(bigdf['run_date'])

for g,d in bigdf.groupby(['company']):
    data = d.groupby(['run_date','county-state','company','est'],as_index=True).agg({'new': sum,'confirmed': sum,'death': sum}).stack().reset_index().rename(columns={'level_4': 'type',0: 'val'})
    print(f'{g}')
    g = sns.FacetGrid(data,col='est',sharex=False,sharey=False,height=5,col_wrap=4)
    g.map(sns.barplot,'run_date','val','type',order=data.run_date.dt.date.unique(),hue_order=data['type'].unique())
    g.add_legend()
    g.set_xticklabels(rotation=90)
    g.set(yscale='log')
    plt.tight_layout()
    plt.show()

上述尝试有两个问题。我需要制作成组的堆叠条形图,其中每个组是每个不同的公司,并且每个堆叠条形图都是单独的机构(又名est中的coviddf.csv列),所以每个公司都可能有多个机构,所以我想查看分组堆积的条形图中新的,确认的和死亡的covid19病例数。有什么方法可以制作此时间序列的带注释的分组堆积条形图?谁能建议实现这一目标的可能方法?如何在一页上绘制这些图?有想法吗?

所需的输出

我试图像this postsecond related post那样制作成组的堆叠条形图。这是我要制作的带注释的分组堆积条形图:

enter image description here

有人能指出我如何通过以上尝试来实现这一目标吗?有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)