小编new*_*w2R的帖子

如何使用for循环在ggplot中添加图层

我想将数据帧的每一列绘制到ggplot2中的单独层.逐层构建绘图效果很好:

df<-data.frame(x1=c(1:5),y1=c(2.0,5.4,7.1,4.6,5.0),y2=c(0.4,9.4,2.9,5.4,1.1),y3=c(2.4,6.6,8.1,5.6,6.3))

ggplot(data=df,aes(df[,1]))+geom_line(aes(y=df[,2]))+geom_line(aes(y=df[,3]))
Run Code Online (Sandbox Code Playgroud)

有没有办法使用单个函数绘制所有可用列?

我尝试这样做但它不起作用:

    plotAllLayers<-function(df){
    p<-ggplot(data=df,aes(df[,1]))
    for(i in seq(2:ncol(df))){ 
        p<-p+geom_line(aes(y=df[,i]))
        }
        return(p)
    }

plotAllLayers(df)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

15
推荐指数
2
解决办法
1万
查看次数

标签 统计

ggplot2 ×1

r ×1