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")





