4

matplotlib.pyplotを使用して次の棒グラフを作成することができました。

ここに画像の説明を入力してください

プロットは、以下に印刷されている集約されたPANDASDataFrameから取得されます。棒グラフの各棒は、mean列の値に対応していることに注意してください。また、値はゼロではありませんが、PANDASの出力0-0floatの場合は非常に小さいことに注意してください。

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対応し、以下同様に続きます。LDLocal

これはできますか?

編集:

私はおそらく私が欲しいものを正確に明確にすべきだと思います。上記のDataFrameの左側の4列の構成と同様に、最も一般的な(Group)から最も具体的な(Attn)に進むいくつかのラベルが必要です。

4

1 に答える 1

5

マスターではこれが実装されています(「平均」にランダムデータを使用しました)。下部の画像を参照してください。アップグレードしたくない場合は、手動で設定することもできます。

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 に答える