我试图显示直方图。下面的数组是直方图中每个单独bin的计数。
binVals = [0,5531608,6475325,1311915,223000,609638,291151,449434,1398731,2516755,3035532,2976924,2695079,1822865,1347155,304911,3562,157,5,0,0,0,0,0,0,0,0,0]
我该怎么做呢?我尝试使用此代码
import matplotlib.pyplot as plt
binVals = [0,5531608,6475325,1311915,223000,609638,291151,449434,1398731,2516755,3035532,2976924,2695079,1822865,1347155,304911,3562,157,5,0,0,0,0,0,0,0,0,0]
plt.hist(binVals, bins=len(binVals), color='r', alpha=0.5, label='Values')
plt.title("Demo Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.legend()
plt.show()
这将返回与此
类似的图像这是关闭的,因为在binVals
中,区间0和19到27的计数为零。上图中的零值不在我期望的位置。
我期待与此类似的东西
如何修改我的代码以获得此类结果?
作为一个额外的问题,在预期图表的底部有很好的标签Bins。可以用matlibplot完成吗?
答案 0 :(得分:1)
我认为你正在策划错误的事情。 Matplotlib将计算直方图本身。它现在绘制你有14个箱子,值在0到250,000之间,3个值在250,000到500,000之间等。如果你自己计算直方图,使用条形图(),或者让Matplotlib为你计算直方图。 / p>
对于刻度标签,请使用set_xticklabels(["Under 600", "600-700",...], rotation = "vertical")
(我将评论作为答案,因此可以将其标记为已回答)