导出并重新导入 ggplot 对象

use*_*828 3 r ggplot2

我有两个不同的(很长)R 脚本,每个脚本最终生成两个 ggplots(p 和 q)。

我想将这两个图保存为“gg-files”,以便我可以在第三个 R 脚本中重新上传它们,其中我将使用 ggarrange (或其他)将它们合并为学术出版物。

如何将 ggplots 导出/导入为“gg-objects”?

我对我的代码表示歉意 - 我是新手

先感谢您!

我研究了几种保存方法(例如 ggsave、svg() def.off()、imager 包、rsvg 包),但没有一个提供我正在寻找的内容。

# script A
rm(list = ls()) # clean environment
dat <- data.frame(x = 1:10, y = 1:10)
p <- ggplot(dat, aes(x = x, y = y)) + geom_point()

svg(filename = "p.svg") # saves as image
p
dev.off()

# script B
rm(list = ls()) # clean environment
dat <- data.frame(x = 1:10, y = 1:10)
q <- ggplot(dat, aes(x = x, y = y)) + geom_point()

# script C
rm(list = ls()) # clean environment

## import images - how?

## combine

ggarrange(
  p, q,
  nrow = 2
)
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 7

你可以这样保存它们:

xx <- ggplot(mtcars)+geom_histogram(aes(x=cyl))


save(xx, file = "G:/gpl.rdata")
Run Code Online (Sandbox Code Playgroud)

然后加载它们:

load("G:/gpl.rdata")
Run Code Online (Sandbox Code Playgroud)

这会将整个对象带入,您可以看到用于构建绘图的数据以及绘图的其他功能

  • 谢谢你!通过另一个来源,我还发现 saveRDS() 和 readRDS() 可以解决问题 (3认同)