R преобразует цвета в пастельные цвета - PullRequest
0 голосов
/ 30 мая 2018

У меня есть цветовая палитра, спроектированная вручную pal, которую я использую для графика, используя ggplot2

 pal <- c("red","red1","red2","red3","grey","darkgreen","skyblue","blue","magenta","magenta4","yellow","orange","pink","pink","black")

Я хотел бы преобразовать эти цвета в пастельные цвета (т.е. высокое значение и низкая насыщенность вцветовое пространство HSV)

Есть ли простой способ сделать это автоматически?

Я нашел pastel.colors из пакета RPMG, однако эта функция не преобразует данные цвета.

1 Ответ

0 голосов
/ 30 мая 2018

Поскольку я не эксперт по цвету, вы можете попробовать следовать в качестве отправной точки.Идея основана на утверждении, которое я где-то обнаружил, что пастельные цвета 1) имеют высокое значение и низкое или промежуточное насыщение в цветовом пространстве HSV или 2) нуждаются в некотором значении яркости.Поэтому я преобразую названия цветов в оттенки, которые вводятся для hcl через col2rgb & rgb2hsv.

a <-c("red","red1","red2","red3","grey","darkgreen","skyblue","blue","magenta","magenta4","yellow","orange","pink","pink","black")
par(mfrow=c(3,1))
barplot(seq_along(a), col=a, main="original")
# transform to rgb
a1 <- col2rgb(a)
# transform to HSV space
a2 <- rgb2hsv(a1)
# you can try different scaling values e.g. between 0.3 - 0.6
n <- 0.4
barplot(seq_along(a), col=hsv(a2[1,], a2[2,]*n, a2[3,]), main="Pastel_hsv")
# calculate hue for HCl
hue <- a2["h",]*360
# create color with suitable chroma and luminance to get pastel color
a3 <- hcl(hue, 35, 85)
barplot(seq_along(a), col=a3, main="Pastel_hcl")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...