R 如何从单个线数据放置图例

R 如何从单个线数据放置图例,r,ggplot2,R,Ggplot2,我有点困惑如何从单个数据而不是一组数据中绘制图例。你知道我如何在右上角的位置建立和添加一个美丽的传奇吗 ano=c(1986, 1990, 1994, 1998, 2002, 2006, 2010) reapresentacao = c(.66, .70, .72, .75, .78, NA, NA) retencao = c(.39, .42, .50, .51, .50, NA,NA) insucesso = c(.49, .50, .48, .50, .60, NA , NA) inst

我有点困惑如何从单个数据而不是一组数据中绘制图例。你知道我如何在右上角的位置建立和添加一个美丽的传奇吗

ano=c(1986, 1990, 1994, 1998, 2002, 2006, 2010)

reapresentacao = c(.66, .70, .72, .75, .78, NA, NA)
retencao = c(.39, .42, .50, .51, .50, NA,NA)
insucesso = c(.49, .50, .48, .50, .60, NA , NA)
institucionalizacao <- data.frame(ano, retencao, reapresentacao,insucesso)


p <-qplot(xlab="Eleições", ylab="Taxa de reapresentação, \n retenção e insucesso")
p <- p + geom_point(aes(x=institucionalizacao$ano, y=institucionalizacao$retencao), size =     I(8), colour = "grey10")
p <- p + geom_line(aes(x=institucionalizacao$ano, y=institucionalizacao$retencao), size =  I(5), colour = "grey10")
p <- p + geom_point(aes(x=institucionalizacao$ano, y=institucionalizacao$reapresentacao), size = I(8), colour = "grey45")
p <- p + geom_line(aes(x=institucionalizacao$ano, y=institucionalizacao$reapresentacao), size = I(5), colour = "grey45")
p <- p + geom_point(aes(x=institucionalizacao$ano, y=institucionalizacao$insucesso), size = I(8), colour = "grey75")
p <- p + geom_line(aes(x=institucionalizacao$ano, y=institucionalizacao$insucesso), size = I(5), colour = "grey75")
p <- p + theme_minimal(base_size = 18, base_family = "")
p <- p + scale_y_continuous(limits=RangeY, breaks=YBreaks, labels=YTickLabels, expand=c(0,0))
p <- p + scale_x_continuous(breaks = round(seq(min(institucionalizacao$ano), max(institucionalizacao$ano), by = 4),1))
print(p)
ano=c(1986、1990、1994、1998、2002、2006、2010)
reapresentacao=c(.66、.70、.72、.75、.78,不适用,不适用)
retencao=c(.39、.42、.50、.51、.50,不适用,不适用)
不连续=c(.49、.50、.48、.50、.60,不适用,不适用)

institucionalizacao根据我从类似问题的其他答案中收集到的信息(例如),您需要在aes()中指定颜色,但也需要链接到数据框。我实现您要求的方法是使用
restrape2
包中的
melt
重塑数据帧。这样,您就可以拥有三个不同的变量,在指定的年份中跟踪这些变量

library(ggplot2)
library(reshape2)
ano=c(1986, 1990, 1994, 1998, 2002, 2006, 2010)

reapresentacao = c(.66, .70, .72, .75, .78, NA, NA)
retencao = c(.39, .42, .50, .51, .50, NA,NA)
insucesso = c(.49, .50, .48, .50, .60, NA , NA)
group = c("reapresentacao","retencao","insucesso")
institucionalizacao <- data.frame(ano, retencao, reapresentacao,insucesso,)


# Using the reshape2 package you can reorganize your dataframe so that you can organiz
newdf = melt(institucionalizacao, id = c("ano"), measure.vars = c("reapresentacao","retencao","insucesso"),
             variable.name = "group", value.name = "value")

通过将颜色指定给组名称并标记图例,手动更改刻度的颜色

  p + scale_color_manual(name  ="Change group name",
                         values=c("retencao"=        "grey10", 
                                  "reapresentacao"=  "grey45",
                                  "insucesso"=       "grey75"))

可能重复@Paulo感谢您添加这些数字。您特别喜欢使用labs(list(x=,y=)而不是xlab(c(“”)+ylab(c(“”))的任何原因。
  p + scale_color_manual(name  ="Change group name",
                         values=c("retencao"=        "grey10", 
                                  "reapresentacao"=  "grey45",
                                  "insucesso"=       "grey75"))