2014-11-21 282 views
5

我有兩個boxplotes在pandas或matplotlib的一個圖中繪製多個boxplot?

a1=a[['kCH4_sync','week_days']] 
a1.boxplot(by = 'week_days', meanline=True, showmeans=True, showcaps=True, showbox=True,    
       showfliers=False) 
a2=a[['CH4_sync','week_days']] 
a2.boxplot(by = 'week_days', meanline=True, showmeans=True, showcaps=True, showbox=True,  
       showfliers=False) 

但我想將它們放置在一個圖形進行比較。你有什麼建議來解決這個問題嗎?謝謝!

回答

5

使用return_type='axes'得到a1.boxplot返回一個matplotlib Axes對象。 然後使用ax=ax將該軸傳遞給第二次調用boxplot。這將導致兩個箱形圖被繪製在相同的軸上。

a1=a[['kCH4_sync','week_days']] 
ax = a1.boxplot(by='week_days', meanline=True, showmeans=True, showcaps=True, 
       showbox=True, showfliers=False, return_type='axes') 
a2 = a[['CH4_sync','week_days']] 
a2.boxplot(by='week_days', meanline=True, showmeans=True, showcaps=True, 
      showbox=True, showfliers=False, ax=ax) 
0

要繪製一個matplotlib圖多箱線圖,你可以通過數據陣列的列表,以箱線圖,如:

import nump as np 
import matplotlib.pyplot as plt 

x1 = 10*np.random.random(100) 
x = 10*np.random.exponential(0.5, 100) 
x = 10*np.random.normal(0, 0.4, 100) 
plt.boxplot ([x1, x2, x3]) 

唯一覺得我不知道的是,如果你希望每個箱形圖有不同的顏色等。

相關問題