2017-10-08 16 views
1

whiskerpropscappropsmedianpropsを使用してデータフレームから作成したボックスプロットをカスタマイズしようとしていますが、設定したパラメータが機能していません。pandas .boxplotプロパティが機能しない

import pandas as pd 
import matplotlib.pyplot as plt 

df=pd.DataFrame(index = [x for x in range(0,10)]) 
for col in range(1,5): 
    df[col]= df.index * col/10 

fig, ax = plt.subplots() 
bp = df.plot.box(
      ax=ax, 
      whis=[5, 95], 
      showcaps=True, 
      showfliers=False, 
      whiskerprops = {'color':'k','linewidth':0.5,'linestyle':'solid'}, 
      capprops={'color': 'k', 'linewidth': 0.5, 'linestyle': 'solid'}, 
      medianprops = {'color':'k','linewidth': 0.5, 'linestyle': 'solid'} 
      ) 
plotFile = 'C:\\Desktop\\example.png' 
fig.savefig(plotFile, dpi=1000) 

私はウィスカー、キャップや中央分離帯すべての黒と箱ひげ図を期待していたが、私はこれを取得: 尾は青であり、中央値は緑色です。なぜパラメータは無視されますか?代わりにちょうどcolorパラメータを使用して、そこに各プロパティの色を変更し、各プロパティを呼び出すと、色を変更しようとしているの

example boxplot

答えて

2

test = df.plot.box(color = {'whiskers' : 'black', 
          'caps' : 'black', 
          'medians' : 'black', 
          'boxes' : 'black'}) 
plt.show() 

graph

編集

編集方法は次のとおりです。linewidth

test = df.plot.box(color = {'whiskers' : 'black', 
          'caps' : 'black', 
          'medians' : 'black', 
          'boxes' : 'black'}, 
        whiskerprops = {'linewidth' : 4}, 
        flierprops = {'linewidth' : 4}, 
        medianprops = {'linewidth' : 4}, 
        boxprops = {'linewidth' : 4}) 

plt.show() 

plot2

ドキュメント:https://pandas.pydata.org/pandas-docs/stable/visualization.html#box-plots

+0

グレート。ありがとうございました。 (私は以前これを試していましたが、 'df.plot.box'の代わりに' df.boxplot'を使っていました。何らかの理由で '.boxplot'では' color'が機能しません)。パラメータ? – doctorer

+0

あります。私の編集内容を見てください。 –

+0

ありがとうIan。異なるパラメータが異なるアプローチを必要とすることは奇妙である。そしてその「ウィスカープロップ」などは、色を定義するために使用することはできません。 – doctorer

関連する問題