Я хочу сравнить некоторые подгруппы моих данных на одном графике и некоторые другие подгруппы на другом графике. Если я сделаю один график со всеми нанесенными на него подгруппами, цифра будет огромной, и каждое отдельное сравнение станет затруднительным. Я думаю, что читатель будет иметь больше смысла, если данная подгруппа будет одного цвета на всех графиках.
Вот две вещи, которые я пробовал, которые почти работают, но ни одна из них не работает. Они настолько близки, насколько я могу, к 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)
Обратите внимание, что не нанесенный на график уровень по-прежнему появляется в легенде (в соответствии с идеей отбрасывания = ЛОЖЬ).
Неверно, потому что второй график не поддерживает сопоставление видов и цветов, установленное первым графиком
# 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 = красный и virginica = зеленый, но на правом графике это сопоставление изменено.