0

我正在使用 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.mw”行?谢谢你。

4

1 回答 1

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

在此处输入图像描述

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

于 2013-04-22T21:44:01.753 回答