2013-12-16 6 views
10

में केवल पहली 3 पंक्तियां दिखाएं मैं 200 बार सिमुलेशन चला रहा हूं और 3 आउटपुट सूचियों को उच्च पारदर्शिता के साथ 3 लाइनों के रूप में प्लॉट कर रहा हूं। यह मुझे सिमुलेशन के बीच भिन्नता दिखाने की अनुमति देता है।पाइप्लॉट: किंवदंती

समस्या यह है कि मेरी किंवदंती 3 वस्तुओं के बजाय 3x200 आइटम दिखाती है। एक बार प्रत्येक पंक्ति के लिए किंवदंती दिखाने के लिए मैं इसे कैसे प्राप्त करूं?

for simulation in range(200): 
    plt.plot(num_s_nodes, label="susceptible", color="blue", alpha=0.02) 
    plt.plot(num_r_nodes, label="recovered", color="green", alpha=0.02) 
    plt.plot(num_i_nodes, label="infected", color="red", alpha=0.02) 
plt.legend() 
plt.show() 

उत्तर

16

किसी भी साजिश है कि आप कथा में दिखाने के लिए नहीं करना चाहते हैं के लिए

plt.plot(... , label='_nolegend_') 

जोड़ें। तो अपने कोड में आप उदाहरण के लिए कर सकते हैं:

..., label='_nolegend_' if simulation else 'susceptible', ... 

और इसी तरह दूसरों के लिए, या यदि आप iffy कोड पसंद नहीं है:

..., label=simulation and '_nolegend_' or 'susceptible',... 
+2

'लेबल = कोई नहीं' सेट करना भी काम करना चाहिए। – tacaswell

+0

@ टाकासवेल सेटिंग 'लेबल = कोई नहीं' वास्तव में अलग-अलग है और कलाकार को किंवदंती से नहीं हटाता है। उदाहरण के लिए: 'plt.plot ([0,1], [0,1], लेबल = कोई नहीं); plt.plot ([0,1], [1,0]); plt.legend (['justthislabel']) 'पौराणिक कथाओं में दो आइटम दिखाएगा। '_nolegend_''' के साथ 'कोई नहीं' को प्रतिस्थापित करना केवल एक उत्पन्न करता है। – oLas

8

अपने अंकन, उपयोग 'प्रॉक्सी' में अतिरिक्त तर्क से बचने के लिए आपकी किंवदंती प्रविष्टियों के लिए कलाकार:

# no show lines for you ledgend 
plt.plot([], label="susceptible", color="blue", alpha=0.02) 
plt.plot([], label="recovered", color="green", alpha=0.02) 
plt.plot([], label="infected", color="red", alpha=0.02) 

for simulation in range(200): 
    # your actual lines 
    plt.plot(num_s_nodes, color="blue", alpha=0.02) 
    plt.plot(num_r_nodes, color="green", alpha=0.02) 
    plt.plot(num_i_nodes, color="red", alpha=0.02) 
plt.legend() 
plt.show() 
+0

इस बारे में अच्छी बात यह है कि यदि आप अपने linelabels पार्स करने के लिए tex का उपयोग करते हैं तो यह भी काम करता है। मैं इसके साथ काम करने के लिए '_nolegend_' नहीं मिला। – user35915

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