2010-11-24 12 views
42

मैं एक ही बिखराव भूखंड पर अनेक डेटा सेट प्लॉट करने के लिए करना चाहते हैं:matplotlib: एक ही बिखराव पर एकाधिक डेटासेट साजिश

cases = scatter(x[:4], y[:4], s=10, c='b', marker="s") 
controls = scatter(x[4:], y[4:], s=10, c='r', marker="o") 

show() 

ऊपर केवल हाल के scatter()

मैं भी कोशिश की है पता चलता है:

plt = subplot(111) 
plt.scatter(x[:4], y[:4], s=10, c='b', marker="s") 
plt.scatter(x[4:], y[4:], s=10, c='r', marker="o") 
show() 
+1

एक ही लाइन पर इसका अधिमुद्रण के लिए एक संदर्भ का उपयोग किए बिना एक साजिश में दो बिखराव भूखंडों है। –

उत्तर

63

आप एक ही subplot पर ड्राइंग रखने के लिए एक Axes वस्तु के लिए एक संदर्भ की जरूरत है।

import matplotlib.pyplot as plt 

x = range(100) 
y = range(100,200) 
fig = plt.figure() 
ax1 = fig.add_subplot(111) 

ax1.scatter(x[:4], y[:4], s=10, c='b', marker="s", label='first') 
ax1.scatter(x[40:],y[40:], s=10, c='r', marker="o", label='second') 
plt.legend(loc='upper left'); 
plt.show() 

enter image description here

+4

'fig.add_subplot (111) 'में' 111' क्या है? – Temak

+0

यह इस ग्राफ के भीतर उप-अनुच्छेदों की व्यवस्था है। पहला नंबर यह है कि सबप्लॉट की कितनी पंक्तियां; दूसरा नंबर सबप्लॉट के कितने कॉलम हैं; तीसरा नंबर वह सबग्राफ है जिसके बारे में आप अभी बात कर रहे हैं। इस मामले में, एक पंक्ति और सबग्राफ का एक स्तंभ (यानी एक सबग्राफ) है और अक्षएं उनमें से पहले के बारे में बात कर रही हैं। Fig.add_subplot (3,2,5) जैसी कुछ पंक्तियां तीन पंक्तियों और दो स्तंभों के ग्रिड में निचले बाएं सबप्लॉट होंगी। –

4

मैं नहीं जानता, यह मेरे लिए ठीक काम करता है। सटीक कमांड:

import scipy, pylab 
ax = pylab.subplot(111) 
ax.scatter(scipy.randn(100), scipy.randn(100), c='b') 
ax.scatter(scipy.randn(100), scipy.randn(100), c='r') 
ax.figure.show() 
+0

मेरे डेटासेट ओवरलैपिंग थे :) –

4

मैं इस सवाल में आए के रूप में मैं सही था एक ही समस्या है। हालांकि स्वीकार किए जाते हैं जवाब अच्छा लेकिन matplotlib संस्करण 2.1.0 साथ काम करता है, यह बहुत सीधे आगे Axes

import matplotlib.pyplot as plt 

plt.scatter(x,y, c='b', marker='x', label='1') 
plt.scatter(x, y, c='r', marker='s', label='-1') 
plt.legend(loc='upper left') 
plt.show() 
संबंधित मुद्दे