Часто вы можете захотеть назначить цвета точкам на графике ggplot2 на основе некоторой категориальной переменной.
К счастью, это легко сделать, используя следующий синтаксис:
ggplot(df, aes (x=x_variable, y=y_variable, color=color_variable)) +
geom_point()
В этом руководстве представлено несколько примеров использования этого синтаксиса на практике с использованием встроенного набора данных R под названием iris :
#view first six rows of iris dataset
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
Пример 1: Использование цветов по умолчанию
В следующем коде показано, как назначить цвета по умолчанию для точек на графике ggplot2 на основе факторной переменной Species :
library (ggplot2)
ggplot(iris, aes (x=Sepal.Length, y=Sepal.Width, color=Species)) +
geom_point()

Поскольку мы не указали цветовую шкалу или список пользовательских цветов, ggplot2 просто назначил точкам список красных, зеленых и синих цветов по умолчанию.
Пример 2: использование пользовательских цветов
В следующем коде показано, как назначить пользовательские цвета точкам на графике ggplot2 с помощью scale_color_manual() :
library (ggplot2)
ggplot(iris, aes (x=Sepal.Length, y=Sepal.Width, color=Species)) +
geom_point() +
scale_color_manual( values = c(" setosa " = " purple",
" versicolor =" orange",
" virginica "=" steelblue "))

Обратите внимание, что мы могли бы также использовать шестнадцатеричные коды цветов для указания цветов.
Пример 3. Использование пользовательской цветовой шкалы
В следующем коде показано, как назначить пользовательские цвета точкам на графике ggplot2 с помощью пользовательской цветовой шкалы из пакета RColorBrewer :
library (ggplot2)
library (RColorBrewer)
#define custom color scale
myColors <- brewer. pal (3, " Spectral ")
names(myColors) <- levels(iris$Species)
custom_colors <- scale_colour_manual(name = " Species Names", values = myColors)
ggplot(iris, aes (x=Sepal.Length, y=Sepal.Width, color=Species)) +
geom_point() +
custom_colors

Дополнительные ресурсы
Как создавать параллельные графики в ggplot2
Как изменить заголовок легенды в ggplot2
Полное руководство по лучшим темам ggplot2