R 在ggplot中使用geom_vline()复制图例

R 在ggplot中使用geom_vline()复制图例,r,ggplot2,legend,R,Ggplot2,Legend,我要创建此图形: aux_graf = structure(list(lines = structure(c(2L, 2L, 1L, 3L), .Label = c("h0", "ic", "median"), class = "factor"), values = c(21.19755, 23.06978, 24, 22.13366)), .Names = c("lines", "values"), row.names = c(NA, -4L), class = "data.frame"

我要创建此图形:

aux_graf = structure(list(lines = structure(c(2L, 2L, 1L, 3L), .Label = c("h0", 
"ic", "median"), class = "factor"), values = c(21.19755, 23.06978, 
24, 22.13366)), .Names = c("lines", "values"), row.names = c(NA, 
-4L), class = "data.frame")

dadosGraf = structure(list(dados = c(18.7997, 20.5035, 18.6214, 19.9192, 
21.117, 20.8353, 17.527, 17.078, 17.6197, 21.4255, 18.7545, 19.2026, 
18.4187, 20.7641, 21.0553, 17.5905, 18.7561, 18.9772, 20.3084, 
18.8988, 19.1688, 19.2898, 22.059, 18.5854, 17.8896, 21.1609, 
26.1371, 21.4737, 30.9934, 22.8421, 24.4133, 20.4137, 25.5475, 
21.8791, 22.6706, 24.7531, 25.7219, 22.6389, 26.2308, 26.7998, 
28.4708, 26.9941, 25.1489, 24.6179, 27.0194, 25.0589, 22.1119, 
20.3069, 23.6758, 27.1201, 29.6136, 25.9948, 18.223, 23.7336, 
22.4208), y2 = 1:55), .Names = c("dados", "y2"), class = "data.frame", row.names = c(NA, 
-55L))

gp2 <- ggplot(data = aux_graf)+
       geom_vline(aes(xintercept = values, colour=lines, linetype=lines), show_guide=TRUE)+
       geom_point(data = dadosGraf, aes(x = dados, y=y2), size=3.2, shape=21, colour = 'black', fill = 'grey')+
       theme_bw()


有什么帮助吗?谢谢

您可以将
覆盖.aes
与隐藏
线型
图例结合使用。与:

gp2 + 
  scale_color_manual(name = '', 
                     labels = c(ic = 'Limites I.C.', median = 'Mediana', h0 = 'Hipotese Nula'),
                     values = c(ic = 'red', median = 'black',h0 = 'grey40')) +
  guides(color = guide_legend(override.aes = list(linetype = c('dotted', 'dashed', 'solid'))),
         linetype = FALSE)
您将获得以下信息:

谢谢@Jaap!这是成功的。我刚刚更改了列表中的顺序,请更正(“虚线”和“虚线”的位置不正确)。@Jaap为什么需要在此处定义线型向量?我们可以在这里放置任何默认值,还是它们需要像“虚线”这样的线型?另外,我如何防止它覆盖我在“比例\线型\离散”中设置的标签?
gp2 + 
  scale_color_manual(name = '', 
                     labels = c(ic = 'Limites I.C.', median = 'Mediana', h0 = 'Hipotese Nula'),
                     values = c(ic = 'red', median = 'black',h0 = 'grey40')) +
  guides(color = guide_legend(override.aes = list(linetype = c('dotted', 'dashed', 'solid'))),
         linetype = FALSE)