用字符串绘制Python直方图

2024-04-19 01:02:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一些月度销售数据的柱状图。我将数据作为一个有序字典提供,看起来像这样sales_dict = collections.OrderedDict([('Jan', 0), ('Feb', 0), ('Mar', 0), ('Apr', 0), ('May', 0), ('Jun', 0), ('Jul', 0), ('Aug', 11), ('Sept', 2), ('Oct', 2), ('Nov', 0), ('Dec', 0)])

我尝试过使用pyplot和pylab,但没有成功。我希望我的柱状图在x轴上有月份名称,y轴上有销售数量。我试过:

import pylab
from random import randint

fig_num = randint(1,10000)

pylab.figure(fig_num)
pylab.hist(sales_dict.keys(),weights=data_dict.values(),bins=range(50))
pylab.show()

以及

^{pr2}$

在这两种情况下,我都得到了一个错误:“权重应该与x具有相同的形状”。我不熟悉python的大多数绘图工具,但我想知道这是否是因为我字典中的键是字符串而不是数字?如有任何澄清,将不胜感激!在


Tags: 数据import字典fignumcollectionsdictjan
2条回答

我不知道plt.hist是这里使用的正确函数。相反,我会使用plt.bartick_labels参数来为绘图添加月份标签:

centers = range(len(sales))
plt.bar(centers, sales.values(), align='center', tick_label=sales.keys())
plt.xlim([0, 11])

这样可以得到:

enter image description here

您需要使用matplotlib的bar chart函数,而不是直方图函数。在

相关问题 更多 >