不同 ggplot2 图中的重复命令
Duplicate commands in different ggplot2 plots
这似乎是很多人都会遇到的问题,遵循不要重复自己 (DRY) 原则。我在任何地方都找不到答案,也许我一直在寻找错误的术语,这意味着我的问题标题可能不是很好。如果人们对如何为问题命名有更好的建议,我们将不胜感激。
我有几个 ggplot2
图,它们都有一些共同的命令,以及其他差异太大的命令,因此不值得将它们一起写成 loop/function。
如何将常用命令简洁地包含在 one-liner 中?
一个例子可能会解释得更清楚:
common.lines <- "theme_bw() +
geom_point(size = 2) +
stat_smooth(method = lm, alpha = 0.6) +
ylab("Height")"
my.plot <- ggplot(data = my_df, aes(x = "Length", y = "Height")) +
common.lines
jim.plot <- ggplot(data = jim_df, aes(x = "Width", y = "Height")) +
common.lines
我的问题是,如何构造common.lines
?像上面那样制作一个字符串是行不通的。我还尝试制作一个矢量,然后使用 +
作为分隔符 paste
ing。
有什么建议吗?
干杯
您可以将命令放在列表中。
my_df <- data.frame(Length=rnorm(100, 1:100), Height=rnorm(100, 1:100))
jim_df <- data.frame(Width=rnorm(100, sin(seq(1,4*pi,len=100))),
Height=rnorm(100, 1:100))
common.lines <- list(theme_bw(), geom_point(size = 2),
stat_smooth(method = lm, alpha = 0.6), ylab("Special Label"))
my.plot <- ggplot(data = my_df, aes(Length, Height)) + common.lines
jim.plot <- ggplot(data = jim_df, aes(Width, Height)) + common.lines
jim.plot
这似乎是很多人都会遇到的问题,遵循不要重复自己 (DRY) 原则。我在任何地方都找不到答案,也许我一直在寻找错误的术语,这意味着我的问题标题可能不是很好。如果人们对如何为问题命名有更好的建议,我们将不胜感激。
我有几个 ggplot2
图,它们都有一些共同的命令,以及其他差异太大的命令,因此不值得将它们一起写成 loop/function。
如何将常用命令简洁地包含在 one-liner 中?
一个例子可能会解释得更清楚:
common.lines <- "theme_bw() +
geom_point(size = 2) +
stat_smooth(method = lm, alpha = 0.6) +
ylab("Height")"
my.plot <- ggplot(data = my_df, aes(x = "Length", y = "Height")) +
common.lines
jim.plot <- ggplot(data = jim_df, aes(x = "Width", y = "Height")) +
common.lines
我的问题是,如何构造common.lines
?像上面那样制作一个字符串是行不通的。我还尝试制作一个矢量,然后使用 +
作为分隔符 paste
ing。
有什么建议吗?
干杯
您可以将命令放在列表中。
my_df <- data.frame(Length=rnorm(100, 1:100), Height=rnorm(100, 1:100))
jim_df <- data.frame(Width=rnorm(100, sin(seq(1,4*pi,len=100))),
Height=rnorm(100, 1:100))
common.lines <- list(theme_bw(), geom_point(size = 2),
stat_smooth(method = lm, alpha = 0.6), ylab("Special Label"))
my.plot <- ggplot(data = my_df, aes(Length, Height)) + common.lines
jim.plot <- ggplot(data = jim_df, aes(Width, Height)) + common.lines
jim.plot