2015-09-23 21 views
5

私は、複数のボックスプロットを含むパネルプロットをpandasデータフレームのデータからプロットしようとしています。データフレームの列は次のようになります。(9つの明確な地理的領域があるので)パンダのデータフレームの複数のボックスプロット

私は9種類のプロットのパネルを作成したい
data.columns 
Index([u'SiteId', u'obs1', u'obs2', u'obs3', u'obs4', u'obs5', u'obs6', u'date', u'area'] 

それぞれが年の各月の12箱ひげ図を持っています。

df = data.ix[:, ['obs1','date', 'area']] 
df = df.set_index('date') 
colm = ['LOCATION 1'] 
for area in areas: 
    df2 = df.loc[(df.area== area)] 
    df2.boxplot(column=colm, by=df2.index.month, showmeans=True) 

(箱ひげ図は、図中の各月に対応する)唯一の図の上のコード結果を、私は9ようなプロットを作成する:例がプロットを作成するために使用されるスニペットと以下に示しますそれぞれは同じプロット内のサブプロットとして特定の領域に対応しています。言い換えれば、私は最初に地域別にデータをグループ化してから、今年の月ごとにグループ化し、その結果をボックスプロットとしてプロットしたいと思います。どのように私は希望のプロットを得ることができる任意の考えですか?どんな助けもありがとうございます。

また、「[1 1 1 ... 12 12 12]でグループ化されたボックスプロット」と「1,1,1,1,1,1,1,1,1」を取り除くにはどうすればよいですか。 .... "両方のプロットの上部と下部に?

私はstackoverflowルールは私を許可しないので、画像を投稿できません。おかげさまで

+0

偽のデータで簡単なデータフレームを提供することができれば、それは役に立ちます。あなたの9つの数字が実際に生成されていると思われますが、それぞれの数字は次の文字によって上書きされます。 for-loopで新しいFigureを作成しようとすると、9つの異なる数字が得られます。同じ図の9つの領域すべてをプロットする場合は、9x12のサブプロットを作成してforループの関連する軸にプロットしてください –

+0

ありがとうDiziet、私はそれを試みましたが動作しません。以下はサンプルデータです(わずか数日間ではありますが、日付は1年全体をカバーしており、9つのエリアがあります)。 : 日付OBS1領域 2011-01-03 95.213458 4 2011-01-15 85.360990 5 2011-01-18 84.556772 5 2011-01-21 50.630212 6 2011-01-24 85.118985 3 2011-01- 27 7.944901 1 2011-01-30 56.947048 3 2011-01-03 89.431410 6 2011-01-06 7.979408 6 – Vakratund

答えて

1

これは必要な操作ですか?

fig, axs = plt.subplots(len(areas), 1, figsize=(5,45)) 
for ax,area in zip(axs,areas): 
    df2 = df.loc[(df.area==area)] 
    df2.boxplot(column=['obs1'], by=df2.index.month, showmeans=True, ax=ax) 
+0

Thanks Diziet Asahi!これはうまく動作します。 – Vakratund

関連する問題