我想比较一个图中我的数据的一些子组和另一个图中的一些其他子组。如果我绘制一个所有子组的图,那么这个数字是压倒性的,并且每个单独的比较都变得困难。我认为如果给定的子组在所有地块中颜色相同,对读者来说会更有意义。
这是我尝试过的两件事,几乎可以奏效,但都不太奏效。他们和我一样接近 MWE!
错误,因为所有三个级别都显示在图例中
library(tidyverse)
# compare first and second species
ggplot(data = iris %>% filter(Species != 'virginica'),
mapping = aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
scale_color_discrete(drop = FALSE)
# compare second and third species
ggplot(data = iris %>% filter(Species != 'setosa'),
mapping = aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
scale_color_discrete(drop = FALSE)
请注意,未绘制的级别仍然出现在图例中(与 drop = FALSE 的想法一致)。
错误,因为第二个图不保持第一个图建立的物种颜色映射
# compare first and second species
ggplot(data = iris %>% filter(Species != 'virginica'),
mapping = aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
scale_color_manual(values = c('red', 'forestgreen', 'blue'),
breaks = unique(iris$Species))
# compare second and third species
ggplot(data = iris %>% filter(Species != 'setosa'),
mapping = aes(x = Sepal.Length,
y = Sepal.Width,
color = Species)) +
geom_point() +
scale_color_manual(values = c('red', 'forestgreen', 'blue'),
breaks = unique(iris$Species))
请注意,在左图中 setosa = red 和 virginica = green,但在右图中,映射发生了变化。