天天看點

python用matplotlib畫玫瑰_python – 使用matplotlib使用字典繪制一個條...

有沒有辦法使用matplotlib直接使用資料繪制條形圖?

我的字典看起來像這樣:

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 "", line 1, in

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