ggplot2删除线型图例但保留颜色图例

时间:2017-01-24 11:40:03

标签: r ggplot2 legend

我有一个R脚本用ggplot2制作图表。制作一个真实可重复的例子有点复杂,但制作图的代码如下:

 ggplot(df,aes(x=Year,y=value, colour = factor(mpft)), show.legend = T) +
      geom_line(aes(group = index, linetype=LETTERS[df$type]), size = .8) +
      scale_linetype_manual(name= "Run Type", values=lty.stock(seqle(run.type)),labels = run.type) +
      scale_color_manual(name = "PFT",
                         values = setNames(mycol[unique(df$mpft)], unique(df$mpft)),
                         labels = setNames(mynam[unique(df$mpft)], unique(df$mpft))) +
      scale_linetype_manual(name= "Run Type", values=lty.stock(seqle(run.type)),labels = run.type) +
...

enter image description here

如何通过给出布尔条件来禁用线型图例。像

这样的东西
  scale_color_manual(..., show = TRUE) +
  scale_linetype_manual(..., show = FALSE) +

修改

由于用户指向与Turning off some legends in a ggplot的相似性 我强调了图例的删除应该取决于布尔条件。在该帖子中,使用了guide = FALSE选项。这实际上也给出了正确的结果,但是guide = TRUE会产生错误。 这可以通过使用类似

的东西来克服
p = ggplot() + ...
if(condition) p = p + guides(linetype = FALSE)

这不完全是我想要的,但我想这就是诀窍。

0 个答案:

没有答案