2015-09-10 4 views
6

私はPandas 0.16.2とMatplotlib 1.4.3を実行しています。返しpandas - ボックスプロット中央値の色設定の問題

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E']) 

fig, ax = plt.subplots() 

medianprops = dict(linestyle='-', linewidth=2, color='blue') 

bp = df.boxplot(medianprops=medianprops) 

plt.show() 

enter image description here

color設定が読まれていないように見える私は、次のコードによって生成された箱ひげ図の中央値を着色、この問題を持っています。 linestyleとlinewidthの設定だけを変更すると、プロットは正しく反応します。

medianprops = dict(linestyle='-.', linewidth=5, color='blue') 

enter image description here

誰もがそれを再現することができますか?

答えて

0

を見ます色と線幅を中央値にすると

[[item.set_color('r') for item in bp[key]['medians']] for key in bp.keys()] 
[[item.set_linewidth(0.8) for item in bp[key]['medians']] for key in bp.keys()] 
5

DataFrame.boxplot()のコードを見ると、kwsがmatplotlibのboxplotに取って代わるさまざまな要素の色を扱う特別なコードがあります。理論的には、'boxes', 'whiskers', 'medians', 'caps'のキーを持つ辞書を含むcolor=引数を渡す方法があるようですが、boxplot()を直接呼び出すときには動作しないようです。

しかし、これは動作するようです:その後、

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E']) 

fig, ax = plt.subplots() 

bp = df.boxplot(return_type='dict') 

と直接割り当てる:

df.plot(kind='box', color={'medians': 'blue'}, 
     medianprops={'linestyle': '--', 'linewidth': 5}) 

は、実際には次の回避策は、箱ひげ図のコマンドからdictを返し、うまく機能Pandas Boxplot Examples

+1

ありがとうございます。しかし、マルチインデックス化されたデータフレームをプロットする目的では、kind = 'box'ではなく、 'by'カラムを使用してboxplot関数が必要です。 –

+0

実際に[これ](http://stackoverflow.com/a/28103385/2699288)を使用してそれは動作します! –

+0

pd 0.22ではもう動作しません。 –

関連する問題