2014-11-21 9 views
5

मैं एक दो boxplotesपांडा या matplotlib में एक ग्राफ में एकाधिक बॉक्सप्लॉट प्लॉट?

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 प्राप्त करने के लिए 0pl31lऑब्जेक्ट को वापस करने के लिए a1.boxplot का उपयोग करें। फिर 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 ग्राफ पर एक से अधिक boxplots प्लॉट करने के लिए आप के रूप में, boxplot करने के लिए डेटा सरणियों की एक सूची पारित कर सकते हैं:

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]) 

केवल लगता है कि मैं अगर आप प्रत्येक boxplot चाहते है के बारे में सुनिश्चित नहीं हूँ एक अलग रंग आदि के लिए

संबंधित मुद्दे