在 Hadley Wickham 的ggplot2书中第 10.3 章中,他提到了制作绘图函数。我想制作许多使用刻面的类似图,但我无法引用列。如果我所有的参考都是美学的,那么我可以使用 aes_string 并且一切正常。Facet_wrap 似乎没有类似物。
library(ggplot2)
data(iris)
这是我想要功能化的情节。
pl.flower1 <- ggplot(data=iris,
aes_string(x='Sepal.Length', y='Sepal.Width', color='Petal.Length')) +
geom_point() +facet_wrap(~Species)
如果我不分面,这可行。
flowerPlot <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point()
}
pl.flower2 <- flowerPlot(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length')
“sp”应该是下面两行吗?一个公式,一个字符串?也许整个方法是错误的。
flowerPlotWrap <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point() +facet_wrap(sp)
}
pl.flower3 <- flowerPlotWrap(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length', sp= ?????)
除了答案之外,我还想知道有人如何解决这个问题?