天天看点

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