我们都知道我们能做到

p <- ggplot(data)
p + aes(x = funny_hat) + geom_histogram()

但我从未见过相反的 case .假设我想存储一堆ggplot对象,例如:

geom_boxplot() + stat_compare_means(method = "anova", size = 14, vjust = 1) +
scale_y_continuous(breaks = seq(-2,2.5, 0.5)) + theme(text = element_text(size = 48))

...这样我就可以为不同的数据集插入所有这些内容,例如

ggplot(data1) + [all my arguments]
ggplot(data2) + [all my arguments]

如果我try 使用与第一个示例中相同的方法,这将不起作用,但是有什么方法可以做到这一点吗?我厌倦了复制粘贴...

推荐答案

诀窍是使用list个元素来制作模板,然后将模板应用于不同的数据框:

library(ggplot2)
library(ggpubr) 

plot_template <- list(
  geom_boxplot(),
  stat_compare_means(method = "anova", size = 14, vjust = 1),
  scale_y_continuous(breaks = seq(-2, 2.5, 0.5)),
  theme(text = element_text(size = 48))
)

# test
ggplot(mtcars, aes(x = factor(gear), y = mpg)) + plot_template

ggplot(iris, aes(x = Species, y = Petal.Length)) + plot_template

enter image description here enter image description here

R相关问答推荐

ggplot geom_smooth()用于线性回归虚拟变量-没有回归线

查找图下的面积

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

提取具有连续零值的行,如果它们前面有R中的有效值

打印XTS对象

线性模型斜率在减少原始数据时提供NA

如何从容器函数中提取conf并添加到ggplot2中?

当我添加美学时,geom_point未对齐

使用R中的dist()迭代ID匹配的欧几里德距离

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

从多个可选列中选取一个值到一个新列中

从数据创建数字的命名列表.R中的框

在R中使用列表(作为tibble列)进行向量化?

如何阻止围堵地理密度图?

为什么函数toTitleCase不能处理english(1),而toupper可以?

在ggploy中创建GeV分布时出错

抽样变换-REXP与RWEIBUR

使用一个标签共享多个组图图例符号

如何为包创建自定义roxygen2标签?

残差与拟合图上标记点的故障排除