Как назначить цвета по фактору в ggplot2 (с примерами)

Как назначить цвета по фактору в ggplot2 (с примерами)

Часто вы можете захотеть назначить цвета точкам на графике 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

Поскольку мы не указали цветовую шкалу или список пользовательских цветов, 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 ")) 
ggplot2 с пользовательскими цветами для категориальной переменной

Обратите внимание, что мы могли бы также использовать шестнадцатеричные коды цветов для указания цветов.

Пример 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
Пример RColorBrewer в R

Дополнительные ресурсы

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.