【发布时间】:2016-08-31 17:18:10
【问题描述】:
我正在尝试将 ggplot 与几个不同的线层一起使用,一个使用颜色图例,另一个使用线型图例。不幸的是,两个图例中似乎都显示了两个图层,如下面的简单示例所示:
hlines <- data.frame(Hline=c("a", "b"), y=c(-1,1))
vlines <- data.frame(Hline=c("x", "y"), x=c(-1,1))
ggplot() +
geom_hline(data=hlines,
aes(color=Hline, yintercept=y, linetype=NA),
linetype="solid",
show.legend=TRUE) +
geom_vline(data=vlines,
aes(linetype=Hline, xintercept=x, color=NA),
color="black",
show.legend=TRUE) +
scale_color_hue(name="Hline color") +
scale_linetype(name="Vline ltype") +
xlim(-3, 3) + ylim(-3, 3)
代码产生了这个图:
已经有几个类似的问题,但没有一个建议的解决方案可以解决此示例中的问题。例如,this question 是通过简单地从 all 图例中消除一个 geom 来回答的,这不是我想要的,而 this question 似乎应该是我的问题的解决方案,但我的代码上面已经包含了答案,我仍然看到了问题。那么在上面的示例中,如何告诉 ggplot 将垂直线保留在颜色图例之外,将水平线保留在线型图例之外?
【问题讨论】: