我将相同变量(颜色)映射到两个不同几何中的颜色。我希望它们要么出现在单独的图例(DHJ和EFI)中,要么最好完全跳过第二个图例(对于E,F和I)。目前,R将两者混合在一起,并给了我一个图例,该图例按字母顺序列出了DEFHIJ,它们都混合在一起。
基本上,我想将今天的点绘制到一些使用标准数据集的平滑线上。我不希望平滑线有一个图例-我们都熟悉它们,它们在我们所有图形中都是标准的。我只想要一个传说来说明要点。
我已经按照其他地方的建议尝试过guides(color = FALSE)
,但这似乎没有效果。 library(tidyverse)
set1 <- diamonds %>%
filter(color %in% c("D", "H", "J"))
set2 <- diamonds %>%
filter(color %in% c("E", "F", "I"))
ggplot() +
geom_point(data = set1,
aes(x = x, y = y, color = color)) +
geom_smooth(data = set2,
show.legend = FALSE,
aes(x = x, y = y, color = color))
删除了整个图例。
代表:
{{1}}
答案 0 :(得分:2)
如果您希望图例仅显示一个数据集中的颜色,则可以通过将breaks
中的scale_color_discrete()
设置为这些值来实现。
... +
scale_color_discrete(breaks = unique(set1$color) )
如果您不使用线条的颜色,因为这是标准的背景信息,则可以通过在group
中使用geom_smooth()
而不是color
来添加线条。 (如果您希望能够区分行,请参见linetype
。)
ggplot() +
geom_point(data = set1,
aes(x = x, y = y, color = color)) +
geom_smooth(data = set2,
aes(x = x, y = y, group = color))