4

我已经设法使用 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

我想以与上面的标签相对应的方式分层标记条形图的 x 轴。换言之,x 轴的左半部分对应于ASub组。组的左半部分ASub对应因子的LD水平 Local,以此类推……

这可以做到吗?

编辑:

我想我可能应该确切地澄清我想要什么。我希望有几个标签,从最一般的(组)到最具体的(Attn),类似于上面 DataFrame 左侧 4 列的组织。

4

1 回答 1

5

在 master 上实现了(我使用随机数据表示“平均值”),请参见底部的图像。如果您不想升级,也可以手动设置:

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

In [144]: ax.set_xticklabels(['|'.join(t) for t in df.index])

在此处输入图像描述

编辑:

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

 In [168]: ax.set_xticklabels(df.index.format(names=False))

在此处输入图像描述

于 2012-09-16T18:19:28.650 回答