2015-09-10 18 views
6

Ben pandalar 0.16.2 ve Matplotlib 1.4.3 koşuyorum verir. döndürürpandalar - medyan renk ayarlarında boxplot

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

O color ayar okuyamaz anlaşılıyor aşağıdaki kod tarafından oluşturulan Boxplot ortancasını boyama bu sorunu var. Sadece stil stilinin ve linewidth'in ayarlarını değiştirmek, arsa doğru tepki verir.

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

enter image description here

Herkes üretebilir?

cevap

0

bkz

: ile medyan renkler ve çizgi kalınlığı
[[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() için kod baktığımızda en boxplot Matplotlib geçirilen kws yerine geçer farklı unsurların renklerini işlemek için bazı özel kod var. Teorik olarak, orada 'boxes', 'whiskers', 'medians', 'caps' olmak tuşlarıyla bir sözlük içeren bir color= argüman geçirmek için bir yol olarak görünüyor ama doğrudan boxplot() çağrılırken işe almak gibi olamaz.

Ancak bu çalışmıyor gibi görünüyor: Doğrudan atamak sonra

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

fig, ax = plt.subplots() 

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

ve:

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

Aslında aşağıdaki geçici çözüm boxplot komutundan bir dict dönen, iyi çalışıyor Pandas Boxplot Examples

+1

Sağol ama bir multindexed I (sütuna 'tarafından' ile) boxplot işlevini ihtiyaç dataframe yerine tür = 'kutu' sürümünü komplo benim amaçlar için. Aslında kullanarak –

+0

[bu] (http://stackoverflow.com/a/28103385/2699288) Çalışır cevap! –

+0

artık pd 0.22 ile çalışmaz :( –