matplotlib中的直方图在顶部被裁剪

1 投票
1 回答
1344 浏览
提问于 2025-04-15 15:02

我有一个用Python写的程序,它用matplotlib库生成直方图。问题是,有时候生成的图像顶部会被裁剪掉。首先,这里是相关的代码片段,其中pltmatplotlib.pyplot,而figmatplotlib.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轴:这是不是你想要的?能不能给我发个你遇到问题的截图?

撰写回答