这是我的数据框:
x1 <- c(1,2,3,4)
x2 <- c(3,4,5,6)
x3 <- c(5,6,7,8)
x4 <- c(7,8,9,10)
x5 <- c(8,7,6,5)
df <- c(x1,x2,x3,x4,x5)
我从我的数据框中选择3个变量来绘制3个独立的散点图,每个散点图对应x1并将它们存储在一个字符向量中:
varlist <- c("x2","x4","x5")
所以我想创建一个函数,使用ggplot
制作3个独立的散点图,其中x1为x2,x1为x4,x1为x5,其中xx
和yy
为要绘制的不同变量对:
ggplot(data = df) +
geom_point(mapping = aes(x = xx, y = yy)) +
geom_smooth(mapping = aes(x = xx, y = yy))
答案 0 :(得分:2)
你可以这样做:
mapply(function(y) print(ggplot(data = df) +
geom_point(aes_string(x = "x1", y = y)) +
geom_smooth(aes_string(x = "x1", y = y))), y=c("x2","x4","x5"))
注意:我使用df <- data.frame(x1,x2,x3,x4,x5)
代替df <- c(x1,x2,x3,x4,x5)
x
设置为x1
,mapply
将循环遍历y
,其中包含我们希望针对x1
绘制的不同变量。