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

如何在R中实现Taylor diagram与ggplot绘图的并排展示

你用patchwork拼接失败的核心原因是 openair::TaylorDiagram() 基于R基础绘图系统生成图形,不属于ggplot2对象,patchwork仅支持直接拼接ggplot2对象。
可以借助 gridGraphics 包将基础绘图转换为grid图形对象(grob),之后就可以和ggplot2对象一起排布。
如果未安装依赖包可先运行 install.packages(c("gridGraphics", "patchwork")) 安装。
完整可运行代码如下:

# 加载全部依赖包
library(tidyr)
library(openair)
library(ggplot2)
library(patchwork)
library(gridGraphics)
library(grid)

# 生成plot1(ggplot对象)
dat=data.frame(
  a=runif(10),
  b=runif(10)
)
dat = gather(dat, columnNames, values)
colnames(dat)=c("model", "x")
dat$b=runif(20)
plot1= ggplot(dat, aes(x = x, y = b, group = model,
                       color = model, shape = model)) + 
  geom_point( aes(colour = model)) 

# 生成plot2(将泰勒图转换为grob对象)
dates <- seq(as.Date("2015-01-01"),as.Date("2015-12-31"),1)
obs=runif(365)
mod=runif(365)
model=rep(c("model1","model2"),times=c(150,215))
mod.dat <- data.frame(dates,obs,mod,model)

# 先绘制泰勒图,再捕获为grid图形对象
plot.new()
TaylorDiagram(mod.dat, obs = "obs", mod = "mod", group = "model")
grid.echo() 
plot2 <- grid.grab() 

# 并排排布两个图形,可通过widths参数调整两个图的宽度比例
wrap_plots(plot1, plot2, ncol = 2, widths = c(1, 1.2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:39:04