python – 使用matplotlib使用字典绘制一个条形图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用matplotlib使用字典绘制一个条形图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1766字,纯文字阅读大概需要3分钟。
内容图文
![python – 使用matplotlib使用字典绘制一个条形图](/upload/InfoBanner/zyjiaocheng/713/06a04d281cf8449f9efe657843d02e61.jpg)
有没有办法使用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 "<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
解决方法:
您可以通过首先绘制条形图然后设置适当的刻度来分两行进行:
import matplotlib.pyplot as plt
D = {u'Label1':26, u'Label2': 17, u'Label3':30}
plt.bar(range(len(D)), list(D.values()), align='center')
plt.xticks(range(len(D)), list(D.keys()))
# # for python 2.x:
# plt.bar(range(len(D)), D.values(), align='center') # python 2.x
# plt.xticks(range(len(D)), D.keys()) # in python 2.x
plt.show()
注意,倒数第二行应该读取python3中的plt.xticks(range(len(D)),list(D.keys())),因为D.keys()返回一个生成器,matplotlib不能直接使用它.
内容总结
以上是互联网集市为您收集整理的python – 使用matplotlib使用字典绘制一个条形图全部内容,希望文章能够帮你解决python – 使用matplotlib使用字典绘制一个条形图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。