使用R语言绘制热图报错:'x'为列表但无'x'和'y'组件
解决heatmap.2绘图报错问题
错误原因
heatmap.2()函数本身会直接生成热图,它的返回值是一个包含行/列索引、树状结构等元信息的列表,不是可被plot()函数识别的绘图对象。你额外调用plot(Heatmapp),相当于把这个列表传给plot(),而plot()需要带有x/y分量的输入,因此触发报错。
修正后的代码
直接移除多余的plot()调用,heatmap.2()执行时会自动完成绘图:
library(gplots) Heatmap <- function(InputMatrix, OutputPlotName){ # 调用heatmap.2生成热图,无需额外plot heatmap.2(InputMatrix) }
调用示例
Heatmap(InputMatrix=as.matrix(mtcars), OutputPlotName="heatmap")
补充:保存热图
如果需要将热图保存为文件,可以在heatmap.2()前后添加图形设备控制代码:
library(gplots) Heatmap <- function(InputMatrix, OutputPlotName){ # 打开png设备,设置输出路径和尺寸 png(paste0(OutputPlotName, ".png"), width=800, height=600) heatmap.2(InputMatrix) # 关闭设备,完成保存 dev.off() }
内容的提问来源于stack exchange,提问作者Colap
相关产品推荐
相关产品推荐

