Добавление легенды с помощью ggplot не удалось - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь добавить легенду к своей диаграмме, используя scale_color_manual, но когда я использую ее, как показано ниже, ее просто нет.Чтобы покрасить линии градиентно (не уверен, что это правильное слово), я использую color =sapply(1/16, hsv, 0.7, 0.7).После исправления не появляющейся легенды я заменил цвета в легенде на те, которые они фактически имеют на графике.Я попытался добавить show_guide=TRUE в эстетику каждого stat_summary, но он говорит, что это неизвестная эстетика.

colnames(my_dataframe) <- c("Group","a1","a2")

(ggplot(data=my_dataframe, aes(x=my_dataframe$Group)) 
  + stat_summary(fun.y = mean, geom = "line", color =sapply(1/16, hsv, 0.7, 0.7), aes(y=my_dataframe$a1)) 
  + stat_summary(fun.y = mean, geom = "line", color =sapply(2/16, hsv, 0.7, 0.7), aes(y=my_dataframe$a2))  
  + xlab("X-Axis") 
  + ylab("Y-Axis")
  + scale_colour_manual(name = 'Trials', 
                        values =c('black'='black','red'='red'), labels = c('1','2'))
  )

Мой кадр данных до изменения имен столбцов выглядит следующим образом:

myTable1 <- " 
       5    3  8
       5    3  7
       4.9  2  6   
       4.9  3  5
       4.9  1  4
       2.0  2  5"
Data <- read.table(text=myTable1, header = FALSE)

1 Ответ

0 голосов
/ 24 мая 2018

Вы пытаетесь это сделать, вам нужно сначала растопить данные в длинной форме, чтобы получить желаемый результат, я использую пакет reshape2 здесь, вы также можете использовать gather из tidyverse здесь:

library(reshape2)
dat <- read.table(text=myTable1, header = FALSE)
colnames(dat) <- c("Group","a1","a2")

melt_dat <- melt(dat, "Group") # You have to melt your data into long form so that you can get the legend 

ggplot(data=melt_dat, aes(x=Group,y=value, color=variable)) +
  stat_summary(fun.y = mean, geom = "line") +
  xlab("X-Axis") + 
  ylab("Y-Axis") 

Выход :

enter image description here

...