ここでの目標は、下の画像のようなサブプロットではなく、グループ化された棒グラフを作成することです
Pythonでグループ化された棒グラフを作成する簡単な方法はありますか?現在、1つのプロットに個別のバーが表示されるのではなく、個別のバープロットが表示されます。
df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],['g2','c2',10],['g2','c3',12]],columns=['group','column','val'])
%matplotlib inline
df.groupby(['group']).plot(kind='bar')
パンダは列ごとにグループ化されたバーを表示します。各行のエントリは異なる列ですが、結果のプロットではグループが構成されます。したがって、列として「グループ」を持つようにデータフレームを「再形成」する必要があります。この場合、次のようにピボットできます
df.pivot("column", "group", "val")
生産
group g1 g2
column
c1 10 8
c2 12 10
c3 13 12
これをプロットすると、グループ化された棒グラフが作成されます。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],
['g2','c2',10],['g2','c3',12]],columns=['group','column','val'])
df.pivot("column", "group", "val").plot(kind='bar')
plt.show()