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

如何使用subplot展示MNIST数据集中超过9张的手写数字图片

subplot参数逻辑说明

pyplot.subplot(330 + 1 + i)用到了matplotlib子图参数的缩写规则:传入三位整数时,第一位对应子图网格的行数,第二位对应列数,第三位对应当前子图的序号(序号从1开始计数)。
330 + 1 + i最终会生成331到339的整数,对应3行3列的子图网格,总容量为9张子图。当你把循环改为range(10)时,i=9会生成序号10,超出3行3列网格的容量上限,因此抛出ValueError。

展示超过9张图片的实现方案

你只需要调整子图网格的行列数,匹配你需要展示的图片总数即可,同时可以优化原有代码的展示逻辑:

  • 原有代码把pyplot.show()放在循环内部,会导致每次生成一个子图就单独弹出仅含单张图的窗口,建议移到循环外统一展示所有子图
  • 推荐使用subplot(nrows, ncols, index)的显式传参写法,可读性更高,不容易出现参数计算错误

以下是可直接运行的示例代码,支持自定义展示数量:

from matplotlib import pyplot

# 自定义子图行数、列数,总可展示数量 = 行数 * 列数
n_rows = 4
n_cols = 5
# 这里设置为20张,你可以根据需求调整行列数
total_show = n_rows * n_cols

for i in range(total_show):
    pyplot.subplot(n_rows, n_cols, i+1)
    pyplot.imshow(train_X[i], cmap='gray')
    # 可选:隐藏坐标轴,让图片展示更美观
    pyplot.axis('off')

# 所有子图绘制完成后统一显示
pyplot.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:05