在R中选择ggplot图例中的条目

时间:2013-04-22 17:50:51

标签: r ggplot2 legend

我正在使用ggplot创建一个数字。这个数字有27行,我想展示但不强调,两行,平均值和加权平均值,我想强调。我想只有最后两行出现在情节的传说中。这是我的代码:

p_plot <- ggplot(data = dta, aes(x = date, y = premium, colour = State)) + 
          geom_line(, show_guide=FALSE)  + 
          scale_color_manual(values=c(rep("gray60", 27))) 

p_plot <- p_plot + geom_line(aes(y = premium.m), colour = "blue", size = 1.25, 
          show_guide=TRUE) + geom_line(aes(y = premium.m.w), colour = "red", 
          size = 1.25, show_guide=c(TRUE)) + ylab("Pe/pg") 

p_plot

第一个show_guide = FALSE中的geom_line语句似乎被其他show_guide=TRUE语句覆盖。如何将数字图例中的条目数限制为“premium.m”和“premium.m.w”?谢谢。

1 个答案:

答案 0 :(得分:1)

我认为这应该回答你的问题:(代码略有修改,但概念是相同的)

dta <- data.frame(date    = rep(seq.Date(as.Date("2010-01-01"), as.Date("2010-12-01"), "months"), 26),
                  premium = rnorm(12*26),
                  State   = rep(letters, each = 12))

library(ggplot2)


p_plot <- ggplot(data = dta) + 
  geom_line(aes(x = date, y = premium, group = State), colour = "grey60")

p_plot + geom_line(aes(x = unique(date), y = as.numeric(tapply(premium, date, mean)), colour = "mean"),
                   size = 1.25) +
  geom_line(aes(x = unique(date), y = as.numeric(tapply(premium, date, median)), colour = "median"),
            size = 1.25) + ylab("Pe/pg") +  scale_color_discrete("stats")

p_plot

enter image description here

然而,这只是一个(丑陋的)解决方法,远非数据可视化的最佳实践(特别是为了实现ggplot的目的)。无论如何,如果您编辑了问题,我可以为您提供更优雅的解决方案。