मैं, लेकिन clabel में मैनुअल = सच ध्वज के उपयोग के बिना एक समोच्च भूखंड पर matplotlib clabels के स्थान को नियंत्रित करना चाहते हैं। उदाहरण के लिए, मैं एक एक्स-समन्वय निर्दिष्ट करना चाहता हूं, और इस पंक्ति से गुजरने वाले बिंदुओं पर लेबल बनाए गए हैं। मैं देखता हूं कि आप get_position() का उपयोग कर व्यक्तिगत लेबल का स्थान प्राप्त कर सकते हैं, लेकिन मैं उस पर अटक गया हूं। किसी भी तरह की सहायता का स्वागत किया जाएगा। धन्यवाद!matplotlib कंटूर Clabel स्थान
उत्तर
नहीं है, कोई रास्ता नहीं matplotlib में बनाया गया है कि ऐसा करने के लिए है। आपको या तो डिफ़ॉल्ट स्थानों के साथ रहना चाहिए या मैन्युअल के साथ पूरी तरह से इंटरैक्टिव जाना चाहिए और माउस का उपयोग करना चाहिए।
आप नदी के ऊपर एक बग रिपोर्ट के रूप में इस फाइल करने के लिए है ताकि वे अपने एल्गोरिदम सुधार कर सकते हैं चाहते हो सकता है।
कई विकल्प इससे बचने के लिए कर रहे हैं। सबसे पहले प्रोग्रामेटिक रूप से समोच्च आकृति पर टेक्स्ट डालना है। आप इस तरह से पाठ के नीचे लाइनों को विश्वसनीय रूप से हटाने में सक्षम नहीं होंगे। मान लें कि आप एक समोच्च c
आप c.collections
में समोच्च पंक्तियों पा सकते है। हर समोच्च रेखा के लिए get_paths
आह्वान और उस रास्ते पर अपने पाठ जगह।
अन्य विकल्प (matplotlib.contour.BlockingContourLabeler
में) कोड है कि लेबल पदों पाता है (matplotlib.contour.locate_label
में) tweak मैनुअल प्लेसमेंट के लिए कोड बदलने के लिए या करने के लिए होगा, लेकिन दोनों कार्यों बहुत घने होते हैं। आप locate_label
के लिए एक काम प्रतिस्थापन के साथ आ सकते हैं, तो बस अपने साजिश रचने मैक्रो
def your_locate_label(self, linecontour, labelwidth):
# some magic
pass
ar = np.array([[1,0], [0,1]]
c = matplotlib.contour(ar)
c.locate_label = your_locate_label
c.clabel()
Btw में पुराना तरीका ऊपर लिख, अगर आप का उपयोग ipython
आप आसानी से
%psource c.clabel
के साथ अपने इंटरैक्टिव सत्र से समारोह स्रोत देख सकते हैं
या सीधे आह्वान अपने $EDITOR
फ़ाइल पर रहे थे यह
%edit c.clabel
हाँ, वहाँ अब साथ परिभाषित किया गया है लेबल स्थानों को नियंत्रित करने का एक तरीका है! https://github.com/matplotlib/matplotlib/pull/642
plt.figure()
CS = plt.contour(X, Y, Z)
manual_locations = [(-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4), (2.4, 1.7)]
plt.clabel(CS, inline=1, fontsize=10, manual=manual_locations)
मैनुअल एक्स, वाई का एक iterable वस्तु हो सकता है tuples। कंटूर लेबल्स बनाए जाएंगे जैसे माउस प्रत्येक एक्स, वाई पोजीशन पर क्लिक किया जाता है। – Faber
क्या स्वचालित लेबलिंग की अनुमति देने का कोई तरीका है, और उसके बाद अक्षरों को छेड़छाड़ करने वाले किसी भी लेबल को हटाने (और शायद सुधार) करने के लिए लेबल के माध्यम से लूप करें? –
- 1. matplotlib
- 2. कंटूर साजिश अंक matlab
- 3. matplotlib
- 4. जावैक पर कंटूर की गलत संख्या?
- 5. matplotlib
- 6. matplotlib
- 7. matplotlib
- 8. Matplotlib - सिंगल वैल्यू
- 9. Matplotlib: सबप्लॉट
- 10. matplotlib
- 11. matplotlib
- 12. matplotlib
- 13. matplotlib
- 14. Matplotlib
- 15. matplotlib
- 16. matplotlib
- 17. matplotlib
- 18. matplotlib
- 19. matplotlib
- 20. matplotlib
- 21. matplotlib
- 22. matplotlib
- 23. matplotlib
- 24. matplotlib
- 25. MatPlotLib
- 26. Matplotlib
- 27. matplotlib?
- 28. matplotlib
- 29. matplotlib
- 30. matplotlib
मैं इस मुद्दे को तैनात नहीं मिला, तो मैं बना एक नया एक: https://github.com/matplotlib/matplotlib/issues/613 – keflavich