2014-09-18 2 views
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) 

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

+0

Я не уверен, почему вы пытаетесь это сделать. Не могли бы вы предоставить свой df? –

+0

Есть ли причина, по которой вы не хотите изменять свой набор данных в длинном формате? См. [Этот ответ] (http://stackoverflow.com/a/15988472/2461552) для примера. – aosmith

ответ

0

Я использую функцию meltdplyr. Он решил все мои проблемы выше. Спасибо за все ваши комментарии.

Смежные вопросы