【问题标题】:Stacking multiple barchart subplots into one PDF (python, matplotlib)将多个条形图子图堆叠成一个 PDF(python、matplotlib)
【发布时间】:2020-09-26 11:17:54
【问题描述】:

我正在努力应对次要情节的疯狂。我制作了一堆条形图,我想将它们按顺序保存到一个 PDF 中。每个都总结了一个二进制变量(通常是堆叠的,但如果更简单的话,也可以不堆叠)。图表很好,但是当我尝试将它们放入子图网格中时,我把它搞砸了!

我的问题是 1) 我没有正确地遍历数据,以及 2) 我似乎无法堆叠一列图表 - 仅适用于 2+。

很抱歉提出这样一个蹩脚的问题,但这是我得到的最接近的问题!有什么建议吗?

df = pd.DataFrame(np.random.randint(0,2,size=(100, 12)), columns=list('ABCDEFGHIJKL')) #load data
key_vars = list('ABCDEFGH') #variables to plot
num_plots = len(key_vars) #number of subplots

fig, ax = plt.subplots(num_plots, 2, sharex='col', sharey='row') #create figure

for i in range(num_plots):
    for j in range(2):
        ax[i,j].barh(df[key_vars[i]].value_counts(),10) #create subplots

fig.savefig('binary_barcharts.pdf') #save to .pdf

【问题讨论】:

    标签: python pandas matplotlib bar-chart subplot


    【解决方案1】:

    你在寻找这样的东西吗:

    (df[key_vars].apply(pd.Series.value_counts
       .T.plot.bar(stacked=True)
    )
    

    输出:

    【讨论】:

    • 谢谢,这不是一个糟糕的解决方案。我喜欢它简单干净。虽然我仍在尝试将这些情节分成单独的子情节。
    猜你喜欢
    • 2014-08-01
    • 2017-03-28
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    相关资源
    最近更新 更多