【问题标题】:Python Pandas Stacked Bar Chart x-axis labelsPython Pandas 堆积条形图 x 轴标签
【发布时间】:2017-09-12 12:49:26
【问题描述】:

我有以下数据框:

Months  Region  Open Case ID    Closed Case ID
April   APAC    648888          648888
April   US      157790  
April   UK      221456          221456
April   APAC    425700  
April   US      634156          634156
April   UK      109445  
April   APAC    442459          442459
May     US      218526  
May     UK      317079          317079
May     APAC    458098  
May     US      726342          726342
May     UK      354155  
May     APAC    463582          463582
May     US      511059  
June    UK      97186           97186
June    APAC    681548  
June    US      799169          799169
June    UK      210129  
June    APAC    935887          935887
June    US      518106  
June    UK      69279           69279

我正在通过以下方式获取 Open Case ID 和 Closed Case ID 的计数:

df = df.groupby(['Months','Region']).count()

我正在尝试复制以下由 Excel 生成的图表,如下所示:

我得到以下内容:

df[['Months','Region']].plot.bar(stacked=True, rot=0, alpha=0.5, legend=False)

在 x 轴及其标签的分解方式方面,有没有办法让 python 生成的图表更接近 Excel 生成的图表?

【问题讨论】:

    标签: python pandas dataframe plot bar-chart


    【解决方案1】:

    对于类似的问题有很好的解决方案来设计多索引标签here。您可以在该解决方案中使用与 ax=fig.gca() 相同的绘图参数,即

    import matplotlib.pyplot as plt
    
    # add_line,label_len,label_group_bar_table from https://stackoverflow.com/a/39502106/4800652
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    #Your df.plot code with ax parameter here
    df.plot.bar(stacked=True, rot=0, alpha=0.5, legend=False, ax=fig.gca())
    
    labels = ['' for item in ax.get_xticklabels()]
    ax.set_xticklabels(labels)
    ax.set_xlabel('')
    label_group_bar_table(ax, df)
    fig.subplots_adjust(bottom=.1*df.index.nlevels)
    plt.show()
    

    基于样本数据的输出:

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2013-03-31
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      相关资源
      最近更新 更多