我有一个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) +
...
如何通过给出布尔条件来禁用线型图例。像
这样的东西 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)
这不完全是我想要的,但我想这就是诀窍。