मेरे पास एक बार चार्ट है और मैं प्रत्येक कॉलम पर कुछ टेक्स्ट प्रदर्शित करना चाहता हूं, मैं यह कैसे कर सकता हूं?मैं matplotlib में बार चार्ट में कॉलम पर टेक्स्ट कैसे प्रदर्शित कर सकता हूं?
27
A
उत्तर
38
मेरा मानना है कि यह सही दिशा में बात करेंगे:
http://matplotlib.sourceforge.net/examples/pylab_examples/barchart_demo.html।
बात यह है कि आप सबसे में रुचि रखते हैं है:
def autolabel(rects):
for rect in rects:
height = rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
ha='center', va='bottom')
पाठ की नियुक्ति ऊंचाई समारोह, या स्तंभ की ऊंचाई, और संख्या है कि प्रत्येक के शीर्ष पर डाल दिया जाता है से निर्धारित होता है कॉलम द्वारा लिखा गया है: '% d'% int (ऊंचाई)। तो आपको बस इतना करना है कि तारों की एक सरणी बनाएं, जिसे 'नाम' कहा जाता है, जिसे आप कॉलम के शीर्ष पर चाहते हैं और इसके माध्यम से फिर से चलाना चाहते हैं। एक स्ट्रिंग (% s) के लिए प्रारूप को बदलने के लिए सुनिश्चित करें और डबल नहीं।
def autolabel(rects):
# attach some text labels
for ii,rect in enumerate(rects):
height = rect.get_height()
plt.text(rect.get_x()+rect.get_width()/2., 1.02*height, '%s'% (name[ii]),
ha='center', va='bottom')
autolabel(rects1)
ऐसा करना चाहिए!
मैंने इसे समझने की कोशिश की है, लेकिन मैं एक स्ट्रिंग प्रदर्शित करना चाहता हूं, और यह वह जगह है जहां यह मुझे परेशान करता है। मैंने इसके साथ गड़बड़ की, लेकिन मैं इसे अपने मामले के अनुरूप संशोधित नहीं कर सकता। – GiannisIordanou
मैंने आपको अपना मूल जवाब संपादित करने के लिए संपादित किया है कि आपको क्या बदलना है। – cosmosis
@ कॉस्मोसिस '1.02 * ऊंचाई' वास्तव में काम नहीं करता है अगर वाई-मान बहुत भिन्न होते हैं (उदाहरण के लिए, न्यूनतम 0 और अधिकतम 1300)। कोई सुझाव? – tobip