2014-11-21 281 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]) 

唯一觉得我不知道的是,如果你希望每个箱形图有不同的颜色等。

相关问题