Я пытался построить несколько непрерывных переменных временных рядов на одном графике, используя ggplot2. Поскольку было много переменных, и я попытался использовать нормальное эстетическое отображение внутри цикла for, как,
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 вместе внутри цикла или есть ли способ сгенерировать дискретные значения цвета с меткой в качестве имен переменных.