matplotlib中的直方图在顶部被裁剪
我有一个用Python写的程序,它用matplotlib库生成直方图。问题是,有时候生成的图像顶部会被裁剪掉。首先,这里是相关的代码片段,其中plt
是matplotlib.pyplot
,而fig
是matplotlib.figure
:
plt.hist(grades, bins=min(20, maxScore), range=(0,maxScore), figure=fig.Figure(figsize=(3,2), dpi=150))
plt.xlabel("Raw Score")
plt.ylabel("Count")
plt.title("Raw Score Histogram")
plt.savefig(histogramFile)
问题出现在这样的情况下。我可能在grades
里有300个元素,其中3个区间的元素超过20个,而其他的都少于20个。那些超过20个的区间顶部会被切掉,y轴的范围只到20。不过,这并不是每次都会发生:如果grades
里有不同的300个元素,且分布相似,可能就会正常显示,y轴会根据figsize
的设置来调整。此外,x轴的显示总是正确的。
我该怎么做才能让y轴正确缩放,并且确保条形图能完整显示在图像里呢?
1 个回答
1
给matplotlib的开发者提交一个bug报告,问问他们能不能为这个问题写个测试案例。
你应该可以用ylim这个函数来设置y轴:这是不是你想要的?能不能给我发个你遇到问题的截图?