Chciałbym wykreślić każdą kolumnę ramki danych na osobnej warstwie w ggplot2. Budowanie warstwa po warstwie fabuły działa dobrze:jak dodawać warstwy w ggplot używając pętli for?
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]))
Czy istnieje sposób, aby wykreślić wszystkie dostępne kolumny z nich za pomocą pojedynczej funkcji?
starałem się zrobić to w ten sposób, ale to nie działa:
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)
Dziękuję, to odpowiada na moje pytanie. To naprawdę pomaga. reshape2 jest bardzo przydatny. Sądzę, że muszę się przyzwyczaić do długiego formatu. – new2R