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

如何将magick导入的图片与pheatmap、ggplot2等R绘制图表组合排布

问题原因

gridExtra::grid.arrange仅支持grob类型的图形对象,你通过magick::image_read读取的本地图片属于magick-image类,不属于兼容的grob类型,因此无法直接放入排布列表触发报错。

解决方法

将magick读取的图片转换为rasterGrob类型后再传入排布列表即可,修正后的完整代码如下:

# 加载所需包
library(magick)
library(pheatmap)
library(ggplot2)
library(dplyr)
library(gridExtra)
library(grid)

# 读取本地图片并转换为grob对象
my_image <- image_read("Capture.PNG")
my_image_grob <- rasterGrob(my_image) # 转换为grid可识别的grob对象

# 生成pheatmap热图
test  <- matrix(rnorm(200), 20, 10)
mfs  <- pheatmap(test)

# 生成ggplot散点拟合图
plot_LM <-  test %>% as.data.frame() %>%
    ggplot(aes(x=V1, y=V2)) +
    geom_point(color="blue") + 
    geom_smooth(method=lm, se=FALSE, fullrange=TRUE,
                linetype="dashed",
                color="darkred", fill="blue")

# 三图排布
grid.arrange(grobs=list(mfs$gtable, plot_LM, my_image_grob ), 
                         ncol= 3, labels=LETTERS[1:3])

可选调整

如果需要调整导入图片的缩放、对齐效果,可以在rasterGrob中添加参数控制:

  • 调整宽度:width = unit(0.9, "npc")
  • 调整高度:height = unit(0.9, "npc")
  • 对齐方式:just = "center"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:45:05