2016-11-27 3 views
3

Я пытался добавить легенду в свой ggplot, но неудачно провалился. Я пробовал функцию scale_colour_manual(), но легенда не появляется.Добавить легенду в график geom_line() в r

ggplot()+ 
geom_line(data=Summary,aes(y=Y1,x= X),colour="darkblue",size=1)+ 
geom_line(data=Summary,aes(y=Y2,x= X),colour="red",size=1 ) 

Мой dataframe «Резюме» выглядит следующим образом:

X   Y1   Y2 
139 1.465477e+16 7.173075e+15 
277 1.044803e+16 9.275002e+15 
415 1.059258e+16 8.562518e+15 
553 1.033283e+16 8.268984e+15 
691 9.548019e+15 1.022248e+16 
830 1.008212e+16 8.641891e+15 
968 9.822061e+15 9.315856e+15 
1106 9.948143e+15 9.178694e+15 
1244 1.013922e+16 8.825904e+15 
1382 9.815094e+15 9.283662e+15 

Пожалуйста, сообщите мне, как построить Y1, Y2 против X на том же графике и добавить легенду на стороне.

ответ

9

ggplot требуется aes, чтобы сделать легенду, перемещение colour внутри aes(...) будет автоматически создавать легенду. то можно настроить легенду этикетки с помощью scale_color_discrete:

ggplot()+ 
    geom_line(data=Summary,aes(y=Y1,x= X,colour="darkblue"),size=1)+ 
    geom_line(data=Summary,aes(y=Y2,x= X,colour="red"),size=1) + 
    scale_color_discrete(name = "Y series", labels = c("Y2", "Y1")) 

enter image description here

+1

Nathan, Спасибо за ваш ответ. Размещение цвета внутри aes() работает. Я не надеюсь, что я бы разобрал это сам! – ausworli

1

Чтобы обеспечить более компактный ответ, который использует только один geom вызов:

ggplot2 действительно любит длинные данные (пар ключ-значение) лучше, чем широкий (много столбцов). Это требует, чтобы вы преобразовали свои данные перед их построением с использованием пакета, такого как tidyr или reshape2. Таким образом, вы можете иметь переменную, обозначающую цвет, внутри вашего вызова aes, который будет вызывать легенду.

Для ваших данных:

library(tidyr) 
library(ggplot2) 

plot_data <- gather(data, variable, value, -x) 

ggplot(plot_data, aes(x = x, y = value, color = variable)) + 
    geom_line() 

Вы можете настроить легенду через scale_color серии помощников.

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