2014-05-01 4 views
5

सेटअप एक ग्राफ matplotlib जो ठीक से काम कर रहा है का उपयोग कर (नीचे छवि देखें), लेकिन जब मैं एक किंवदंती मैं निम्नलिखित त्रुटि मिलती है जोड़ने का प्रयास: UserWarning: No labeled objects found. Use label='...' kwarg on indivial plots.लेबल नहीं मिला वस्तुओं

यहाँ कोड मैं परिभाषित करने के लिए उपयोग कर रहा हूँ है लाइनों है कि मैं कथा में चाहते हैं और कथा आकर्षित:

#Moving average labels 
smaLabel1 = str(SMA1)+'d SMA' 
smaLabel2 = str(SMA2)+'d SMA' 
smaLabel3 = str(SMA3)+'d SMA' 

#Add SMAs to chart 
ax1.plot(ind, avg1, '#5998ff', label=smaLabel1, linewidth=1) 
ax1.plot(ind, avg2, '#ffbb82', label=smaLabel2, linewidth=1) 
ax1.plot(ind, avg3, '#d689c4', label=smaLabel3, linewidth=1) 
""" End SMA additions """ 

#Add legend 
plt.legend() 

मैं smaLabel चर देख लिया है, और सभी सही तार पकड़। किसी को पता है कि लेबल पंजीकरण क्यों नहीं कर रहे हैं?

enter image description here

+0

आपके द्वारा उपयोग किए जा रहे कोड में, अंतिम ax1.plot (..., legend = ...) और plt.legend() के बीच क्या होता है? (उदाहरण के लिए, plt.grid(), और इसी तरह) – AMacK

+1

जेडीजीडी ने आपने सीटी-झू सलाह के बाद उपरोक्त नमूना-कोड तय किया है? – ankostis

उत्तर

9

आप साजिश मोमबत्ती भूखंडों और एसएमए की साजिश रचने से पहले मात्रा होनी चाहिए। मोमबत्ती प्लॉट में कोई लेबल ऑब्जेक्ट नहीं होता है, जब आप plt.legend() पर कॉल करते हैं, तो यह मौजूदा अक्षों पर प्रत्येक प्लॉट के लिए एक लेबल प्लॉट करने का प्रयास करता है। इसलिए, आप मिल इस UserWarning: No labeled objects found. Use label='...' kwarg on indivial plots.

इसे हल करने के लिए, मुझे आशा है कि यह इस बिंदु पर स्पष्ट है, बस आप पहले ही एसएमए की साजिश, मोमबत्ती साजिश से पहले, और इससे पहले किसी अन्य भूखंडों जा रहा है सही है कि बाद legend() कॉल करने के लिए की आवश्यकता है उत्पन्न।

+0

धन्यवाद! मुझे एहसास नहीं हुआ कि मुझे मोमबत्ती से पहले एसएमए को साजिश करने की जरूरत है। घोषणा आदेश बदल दिया और सब कुछ अब काम कर रहा है। – JDGD

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