You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Matplotlib中plt.figure(figsize)设置无效,直方图尺寸无法调整

解决Matplotlib直方图尺寸不生效的问题

嘿,这个问题我之前调试代码时也踩过坑!问题根源出在代码的执行顺序上——你得先创建指定尺寸的画布,再绘制直方图,不然你的设置根本没作用在直方图所在的画布上。

为什么你的代码没效果?

当你调用plt.hist(x)时,Matplotlib会自动检查当前有没有活跃的画布对象。如果没有,它就会默认创建一个尺寸为6.4×4.8的画布来承载直方图。而你后面写的plt.figure(figsize=(6,4))只是新建了一个完全独立的空画布,和已经绘制好的直方图毫无关系,最后plt.show()显示的还是最初那个默认尺寸的画布,所以你看不到尺寸变化。

修改后的正确代码

把创建画布的代码放到绘图之前就行:

# 先创建指定尺寸的画布
plt.figure(figsize=(6,4))
# 再绘制直方图
plt.hist(x)
plt.xlabel("Months")
plt.ylabel("Donated")
plt.show()

更推荐的写法(面向对象风格)

如果你习惯用Matplotlib的面向对象接口(更灵活,适合复杂绘图),可以用plt.subplots()同时获取画布和轴对象:

fig, ax = plt.subplots(figsize=(6,4))
ax.hist(x)
ax.set_xlabel("Months")
ax.set_ylabel("Donated")
plt.show()

这样不管是调整尺寸还是后续添加其他元素,都能精准控制在目标画布上啦~

内容的提问来源于stack exchange,提问作者sak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:28:34