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

matplotlib绘制10×10随机数组时刻度10处无显示问题如何解决

matplotlib 10×10数组可视化边缘空白问题解决

问题根源

  • 10×10的二维数组在imshow默认渲染规则下,每个像素的中心坐标取值为0~9,像素边界最大值为9.5。你手动设置坐标范围到10后,9~10区间无任何像素数据,因此刻度10的位置显示空白。

修复方案

方案1:对齐刻度与像素边界(保留0~10刻度)

给imshow添加extent参数指定图像的实际坐标范围,让像素边界正好对齐整数刻度,修改对应代码段:

arr = np.random.rand(10, 10)
# extent四个参数分别为:x左边界、x右边界、y下边界、y上边界
plt.imshow(arr, extent=[0, 10, 0, 10])
plt.ylim(0, 10)
plt.xlim(0, 10)

plt.xticks(np.arange(0.0, 11.0, 1.0))
plt.yticks(np.arange(0.0, 11.0, 1.0))

修改后所有刻度区间都有对应像素,不会出现空白区域。

方案2:刻度对应数组下标(0~9刻度)

如果需要刻度值直接对应数组的下标,调整坐标范围和刻度位置即可:

arr = np.random.rand(10, 10)
plt.imshow(arr)
# 坐标范围刚好覆盖所有像素边界
plt.xlim(-0.5, 9.5)
plt.ylim(-0.5, 9.5)
# 刻度位置对齐每个像素中心,标签显示对应下标
plt.xticks(np.arange(0.5, 10, 1), labels=np.arange(0, 10, 1))
plt.yticks(np.arange(0.5, 10, 1), labels=np.arange(0, 10, 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:06:02