是否可以按层次标记matplotlib(pyplot)条形图?

blz*_*blz 4 python matplotlib pandas

我已设法使用matplotlib.pyplot制作以下条形图.

在此输入图像描述

该图来自下面打印的聚合PANDAS DataFrame.请注意,条形图中的每个条形对应于mean列中的值.另请注意,值不是零,而是PANDAS输出0-0浮点数非常小.

Group Local Global Attn  mean
ASub  LD    GD     Attn    -0
                   Dist    -0
            GS     Attn    -0
                   Dist    -0
      LS    GD     Attn    -0
                   Dist    -0
            GS     Attn    -0
                   Dist    -0
DSub  LD    GD     Attn    -0
                   Dist     0
            GS     Attn    -0
                   Dist    -0
      LS    GD     Attn    -0
                   Dist    -0
            GS     Attn    -0
                   Dist    -0
Run Code Online (Sandbox Code Playgroud)

我想以与上面标签相对应的方式分层标记条形图的x轴.换句话说,x轴的左半部分对应于该ASub组.组的左半部分ASub对应于因子的LD级别 Local,依此类推......

可以这样做吗?

编辑:

我想我应该澄清我想要的东西.我希望有几个标签,从最常见(Group)到最具体(Attn),类似于上面DataFrame左边4列的组织.

Wou*_*ire 5

在master上实现了这个(我使用'mean'的随机数据),请参见底部的图片.如果您不想升级,也可以手动设置:

In [143]: ax = df.plot(kind='bar')

In [144]: ax.set_xticklabels(['|'.join(t) for t in df.index])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑:

 In [167]: ax = df.plot(kind='bar')

 In [168]: ax.set_xticklabels(df.index.format(names=False))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述