R ggplot2 не может добавить легенду на график - PullRequest
0 голосов
/ 30 сентября 2018

Я использую Visual Studio с версией 3.5.1 R, в которой я пытался нанести легенду на график.

 f1 = function(x) {
     return(x+1)}

 x1 = seq(0, 1, by = 0.01)

 data1 = data.frame(x1 = x1, f1 = f1(x1), F1 = cumtrapz(x1, f1(x1)) )

Однако, когда я пытался нанести ее, она никогда не давала мне легенду!Например, я использовал тот же код в этом ( Отсутствует легенда с ggplot2 и geom_line )

 ggplot(data = data1, aes(x1)) +
     geom_line(aes(y = f1), color = "1") +
     geom_line(aes(y = F1), color = "2") +
     scale_color_manual(values = c("red", "blue")) 

Я также изучил ( Как добавить легенду в ggplot вручную? -R ) и многие другие сайты в stackoverflo, и я пробовал каждую функцию в https://www.rstudio.com/wp-content/uploads/2016/11/ggplot2-cheatsheet-2.1.pdf

т.е.

     theme(legend.position = "bottom")
     scale_fill_discrete(...)
     group
     guides()
     show.legend=TRUE

Я даже пытался использовать оригинальный сюжет() и легенда ().Ни один не работал.

Я думал, что может быть что-то не так с кадром данных, но я разделил их (x2, f1, F1) на части, но это все равно не сработало.

Я подумал, что что-то не такс IDE, но код, данный kohske, на самом деле нарисовал легенду!

 d<-data.frame(x=1:5, y1=1:5, y2=2:6)
 ggplot(d, aes(x)) + 
   geom_line(aes(y=y1, colour="1")) + 
   geom_line(aes(y=y2, colour="2")) +
   scale_colour_manual(values=c("red", "blue"))

Что не так с кодом?

1 Ответ

0 голосов
/ 30 сентября 2018

Насколько я знаю, в вашей эстетике есть только переменные X и Y.Поэтому нет необходимости в легенде.У вас есть xlab и ylab, чтобы описать ваши две строки.Если вы хотите иметь легенды, вы должны поместить группу в эстетику, что может потребовать перекодирования вашего набора данных

d<- data.frame(x=c(1:5, 1:5), y=c(1:5, 2:6), colorGroup = c(rep("redGroup", 5), 
rep("blueGroup", 5)))
ggplot(d, aes(x, y, color = colorGroup )) + geom_line()

Это должно дать вам две строки и легенду

...