R Language
Цветовые схемы для графики
Поиск…
viridis - печатные и цветные слепые палитры
Viridis (названный в честь рыбы chromis viridis ) - это недавно разработанная цветовая схема для библиотеки matplotlib
Python (видео-презентация по ссылке объясняет, как была разработана цветовая схема и каковы ее основные преимущества). Он легко переносится на R
Существует 4 варианта цветовых схем: magma
, plasma
, inferno
и viridis
(по умолчанию). Они выбираются с параметром option
и кодируются как A
, B
, C
и D
соответственно. Чтобы иметь представление о 4 цветовых схемах, посмотрите на карты:
Пакет можно установить из CRAN или github .
Виньетка для пакета viridis
просто великолепна.
ggplot2
особенностью цветовой схемы viridis
является интеграция с ggplot2
. В рамках пакета два ggplot2
-специфические функции определены: scale_color_viridis()
и scale_fill_viridis()
. См. Пример ниже:
library(viridis)
library(ggplot2)
gg1 <- ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = disp), size = 3)+
scale_color_viridis(option = "B")+
theme_minimal()+
theme(legend.position = c(.8,.8))
gg2 <- ggplot(mtcars)+
geom_violin(aes(x = factor(cyl), y = hp, fill = factor(cyl)))+
scale_fill_viridis(discrete = T)+
theme_minimal()+
theme(legend.position = 'none')
library(cowplot)
output <- plot_grid(gg1,gg2, labels = c('B','D'),label_size = 20)
print(output)
RColorBrewer
Проект ColorBrewer - очень популярный инструмент для выбора гармоничного соответствия цветовых палитр. RColorBrewer
- это порт проекта для R
и обеспечивает также палитры, RColorBrewer
.
Пример использования
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
создает параметры раскраски для ggplot2
: scale_color_brewer
и scale_fill_brewer
.
library(ggplot2)
ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = factor(cyl)), size = 3)+
scale_color_brewer(palette = 'Greens')+
theme_minimal()+
theme(legend.position = c(.8,.8))
Удобная функция для прорисовки вектора цветов
Довольно часто возникает необходимость взглянуть на выбранную цветовую палитру. Одним из элегантных решений является следующая самоопределяемая функция:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Пример использования
color_glimpse(blues9)
Цветовое пространство - нажмите и перетащите интерфейс для цветов
colorspace
пакета предоставляет графический интерфейс для выбора палитры. При вызове функции choose_palette()
появляется следующее окно:
Когда выбрана палитра, просто нажмите « OK
и не забудьте сохранить результат в переменной, например, pal
.
pal <- choose_palette()
Выход представляет собой функцию, которая принимает n
(число) в качестве входных данных и создает вектор цвета длины n
соответствии с выбранной палитрой.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
основные функции цвета R
colors()
функции colors()
перечисляют все имена цветов, которые распознаются R. Существует хороший PDF-документ, где можно увидеть эти цвета.
colorRampPalette
создает функцию, которая интерполирует набор заданных цветов для создания новых цветовых палитр. Эта функция вывода принимает n
(число) в качестве входных данных и создает вектор цвета длины n
интерполирующий исходные цвета.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Любой конкретный цвет может быть создан с помощью функции rgb()
:
rgb(0,1,0)
производит green
цвет.
Панели, удобные для цветной печати
Несмотря на то, что люди с цветным слепым могут распознавать широкий спектр цветов, может быть трудно различать определенные цвета.
RColorBrewer
обеспечивает RColorBrewer
палитры:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
Color Universal Design из Токийского университета предлагает следующие палитры:
#palette using grey
cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
#palette using black
cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")