0
我試圖使用ggplot2在單個圖中繪製多個時間序列連續變量。由於有很多變量的,我試圖用正常的審美映射-環路內,ggplot內循環中的審美映射
p1<-ggplot(df, aes(x=timVar))
ind<-c(2,4,5,6,8,9,10,12,13,15,17) # Index of the series that I wanted to plot
for(i in ind){
p1<-p1+geom_line(aes(df[,i]))
}
print(p1)
因爲這給了我唯一的最後一個系列的情節,我用Google搜索了一些解決方案,終於找到了一個其中有建議我使用aes_string()函數。我重建代碼爲,
p1<-ggplot(df, aes(x=timVar))
ind<-c(2,4,5,6,8,9,10,12,13,15,17) # Index of the series that I wanted to plot
for(i in ind){
p1<-p1+geom_line(aes_string(names(df)[i]))
}
print(p1)
這給了我所有我需要的線。但是,當我試圖爲每個變量分別獲取顏色時,我無法獲得離散顏色。我用下面的代碼,
p1<-p1+geom_line(aes_string(names(df)[i], col=names(df)[i]))
是否有任何方式使用aes_string和在循環內AES一起或是否有任何方式來生成離散的顏色值與標籤設置爲變量名。
我不確定你爲什麼要這樣做。你能提供你的df嗎? – 2014-09-19 00:03:19
是否有你不想將數據集重塑爲長格式的原因?有關示例,請參見[此答案](http://stackoverflow.com/a/15988472/2461552)。 – aosmith 2014-09-19 14:59:35