R语言使用apply和image函数绘制数组切片仅显示首片问题求解
错误原因
你代码中apply的遍历维度配置错误:apply(data, c(1,2), FUN = image)会遍历数组的前两个维度,输出每个坐标点沿第三维度的序列,而非你需要的第三维度对应的32×32切片。
修正方案
- 先缩小绘图边距,避免25行40列的密集布局下,边距挤占绘图空间导致显示异常
- 将
apply的遍历维度改为第三个维度(切片所在维度),可搭配关闭坐标轴参数进一步节省空间
可运行代码示例
# 设置25行40列布局,同时将上下左右边距调至最小 par(mfrow = c(25, 40), mar = c(0,0,0,0)) # 初始化数组,注意你原代码维度写的是2000,需匹配你实际的1000张切片 data <- array(data = b, dim = c(32,32,1000)) # 遍历第三个维度的切片绘图,关闭坐标轴节省空间 apply(data, 3, FUN = image, axes = FALSE)
如果需要将结果保存为本地图片,可以在绘图前后增加设备启停代码:
# 启动png绘图设备,设置足够支撑40列25行的宽高(可按需调整数值) png("slices_output.png", width = 40*40, height = 25*40, res = 100) # 上述绘图代码放此处 # 关闭设备完成保存 dev.off()
内容的提问来源于stack exchange,提问作者geo12035
相关产品推荐
相关产品推荐

