2016-08-16 6 views
3

私はパンダで複数積み重なった棒グラフを作ろうとしています。ここで パンダで複数積み重なった棒グラフの位置付け

はサンプルコードです:

import pandas as pd 

df = pd.DataFrame({'a':[10, 20], 'b': [15, 25], 'c': [35, 40], 'd':[45, 50]}, index=['john', 'bob']) 

ax = df[['a', 'c']].plot.bar(position=0, width=0.1, stacked=True) 
df[['b', 'd']].plot.bar(position=1, width=0.1, stacked=True, ax=ax) 

どの、ノートブックで、次の出力を与える:stacked bar plot

私が直面してる問題は、各グループのために、バーではない、ということです私は彼らが欲しいと思う順序で。バープロットの "position"引数は、バーの相対位置を指定し、0が残っており、1が正しいことを示しています。しかし、それは完全な反対を行うようです。私は何を誤解していますか?

答えて

2

pd.Df.plotの位置パラメータは、棒グラフレイアウトの配置を制御します。これは、マットプロットバープロットのalignパラメータと類似しています。

イラスト:

1.ときposition=0.5:[デフォルト:中央揃え]

df[['a', 'c']].plot.bar(position=0.5, width=0.1, stacked=True, ax=ax) 
df[['b', 'd']].plot.bar(position=0.5, width=0.1, stacked=True, ax=ax) 

示すようにバーがX軸のラベルと一致している: enter image description here 2ときposition=0:左/下端の位置合わせ]

df[['a', 'c']].plot.bar(position=0, width=0.1, stacked=True, ax=ax) 
df[['b', 'd']].plot.bar(position=0, width=0.1, stacked=True, ax=ax) 

バーの左端の部分は、 X軸のラベルは次のとおりです。 enter image description here

ここでは、上記の2つの図の違いを明確に区別できます。

+1

素晴らしい回答、ありがとう!次に、フォローアップの質問です:複数の積み重なった棒グラフをプロットするためにパンダのプロット機能を使用する正しい方法は何ですか?私は "グループ"あたり4バーのようなものを持っています。代わりに新しい投稿を作成する必要があると思うか教えてください – fireboot

+1

私はそれが良いと感じています。また、そのサンプルに 'dataframe'サンプルを含めることもできます。 –

+0

すぐにやってみましょう、ありがとう! – fireboot

関連する問題