का उपयोग करके matplotlib का उपयोग करके एक बार प्लॉट करें क्याका उपयोग करके एक बार साजिश का उपयोग करके बार प्लॉट प्लॉट करने का कोई तरीका है?पायथन: एक शब्दकोश
मेरे dict इस तरह दिखता है:
D = {u'Label1':26, u'Label2': 17, u'Label3':30}
मैं काम करने के लिए
fig = plt.figure(figsize=(5.5,3),dpi=300)
ax = fig.add_subplot(111)
bar = ax.bar(D,range(1,len(D)+1,1),0.5)
उम्मीद कर रहा था, लेकिन ऐसा नहीं है।
यहाँ त्रुटि है:
>>> ax.bar(D,range(1,len(D)+1,1),0.5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 4904, in bar
self.add_patch(r)
File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1570, in add_patch
self._update_patch_limits(p)
File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1588, in _update_patch_limits
xys = patch.get_patch_transform().transform(vertices)
File "/usr/local/lib/python2.7/site-packages/matplotlib/patches.py", line 580, in get_patch_transform
self._update_patch_transform()
File "/usr/local/lib/python2.7/site-packages/matplotlib/patches.py", line 576, in _update_patch_transform
bbox = transforms.Bbox.from_bounds(x, y, width, height)
File "/usr/local/lib/python2.7/site-packages/matplotlib/transforms.py", line 786, in from_bounds
return Bbox.from_extents(x0, y0, x0 + width, y0 + height)
TypeError: coercing to Unicode: need string or buffer, float found
आप विशेष रूप से साझा कर सकते हैं क्या काम नहीं करता:
यहाँ एक लाइनर है? क्या आपको अपवाद मिलता है? क्या अपवाद है? जितना संभव हो उतना जानकारी साझा करें। –
@InbarRose क्षमा करें, मैंने उस त्रुटि को अद्यतन किया है जो दिखाता है ... स्ट्रिंग या बफर से संबंधित कुछ ... मैं इस त्रुटि संदेश को समझ नहीं पा रहा हूं। – otmezger
यह स्पष्ट नहीं है कि आप क्या हासिल करना चाहते हैं, लेकिन 'ax.bar (डी, रेंज (1, लेन (डी) +1,1), 0.5 में)' पहला तर्क संख्याओं की एक सूची होनी चाहिए, आपके मामले में ' D.values () '। – adrianp