2012-10-04 21 views
12

मैटलप्लिब के साथ बनाई गई किंवदंती के साथ एक साधारण साजिश निम्नलिखित उत्पन्न करती है: मेरी किंवदंती के लेबल के बाईं ओर मार्कर दो बार दिखाई देते हैं। क्या कोई यह जान सकता है कि समस्या से कैसे और कैसे बचें? मेरे आदेश है:पायथन प्लॉट किंवदंती: मार्कर दो बार दिखाई देते हैं

pl.plot(x1,x2,'g^', label='regional') 
pl.plot(y1,y2,'bo', label='local') 
pl.legend(loc='upper left') 

आप

धन्यवाद

उत्तर

27

आप numpoints कीवर्ड का उपयोग करके कथा में दिखाया गया मार्करों की संख्या में परिवर्तन कर सकते हैं:

import matplotlib.pyplot as plt 
import numpy as np 
x1 = y1 = np.linspace(0, 10, 100) 
x2 = np.sin(x1) 
y2 = np.cos(y1) 
plt.plot(x1,x2,'g--^', label='regional') 
plt.plot(y1,y2,'b-o', label='local') 
plt.legend(loc='upper left', numpoints = 1) 
plt.show() 

enter image description here


मैं मान लें कि मार्कर दो बार प्रकट होते हैं (डिफ़ॉल्ट रूप से) क्योंकि एम atplotlib मार्करों के बीच लिनस्टाइल कनेक्टर दिखाने की कोशिश कर रहा है। जब कोई कनेक्टर नहीं होता है तो यह थोड़ा अजीब लगता है।

तो साजिश ठोस और डैश रेखाएं था,

plt.plot(x1,x2,'g--^', label='regional') 
plt.plot(y1,y2,'b-o', label='local') 

तो कथा इस प्रकार है:

enter image description here

और अब आप में मार्करों के बीच linestyle के प्रभाव को देख सकते हैं किंवदंती (साथ ही ग्राफ पर)।


आप नहीं है किसी भी कथा संभाल बिल्कुल चाहते हैं, तो आप इस्तेमाल कर सकते हैं

plt.legend(..., handlelength=0) 

उदाहरण के लिए,

import numpy as np 
import matplotlib.pyplot as plt 

x1 = y1 = np.linspace(0, 10, 100) 
x2 = np.sin(x1) 
y2 = np.cos(y1) 
plt.plot(x1,x2,'g--^', label='regional') 
plt.plot(y1,y2,'b-o', label='local') 
plt.legend(loc='best', numpoints=1, handlelength=0) 
plt.show() 

enter image description here

आप

इस्तेमाल कर सकते हैं पौराणिक कथाओं को हटाने के लिए

भी।

+0

समझा। आपका बहुत बहुत धन्यवाद! – Patrick

+0

लाइन कनेक्टर को पूरी तरह से दूर करना संभव है? या मुझे इसके लिए 'स्कैटर()' कमांड का उपयोग करने की ज़रूरत है? – Thriveth

+0

मैंने उपरोक्त कोड जोड़ दिया है कि यह कैसे करना है। – unutbu

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