Как извлечь из рисунка ggplot, какие коды цвета Hex использовались в цветовой палитре viridis? - PullRequest
1 голос
/ 08 января 2020

После создания фигуры в ggplot и использования палитры viridis я хотел бы получить список шестнадцатеричных цветовых кодов для всех цветов, которые были случайно выбраны для этого конкретного графика. Это возможно?

Вот данные:

df = data.frame(Cell = c(rep("13a",5), rep("1b",5), rep("5b",5)),
                condition = rep(c("a","b","c","d","e"), 3),
                variable = c(58,55,36,29,53, 57,53,54,52,52, 45,49,48,46,45))

И сюжет:

library(ggplot2)
library(viridis)

windows(width=4, height=4 )

ggplot(df, aes(x = condition, y = variable, group = Cell, color = Cell)) +
geom_point(aes(color = Cell))+
geom_line()+
scale_color_viridis(discrete=TRUE)

1 Ответ

1 голос
/ 08 января 2020

Вы можете вручную воссоздать гексы, используемые с вызовом scales::viridis_pal()(n) (предложенным @Gregor):

scales::viridis_pal()(length(unique(df$Cell)))
[1] "#440154FF" "#21908CFF" "#FDE725FF"

Однако вы также можете получить доступ к базовым данным любого объекта ggplot используя ggplot_build:

Давайте сначала сохраним ваш график как gg:

gg <- ggplot(df, aes(x = condition, y = variable, group = Cell, color = Cell)) +
  geom_point(aes(color = Cell))+
  geom_line()+
  scale_color_viridis(discrete=TRUE)

Теперь для доступа к базовым компонентам:

ggplot_build(gg)

Поскольку мы действительно интересуют только данные:

ggplot_build(gg)$data

Что дает нам:

[[1]]
      colour x  y group PANEL shape size fill alpha stroke
1  #440154FF 1 58     1     1    19  1.5   NA    NA    0.5
2  #440154FF 2 55     1     1    19  1.5   NA    NA    0.5
3  #440154FF 3 36     1     1    19  1.5   NA    NA    0.5
4  #440154FF 4 29     1     1    19  1.5   NA    NA    0.5
5  #440154FF 5 53     1     1    19  1.5   NA    NA    0.5
6  #21908CFF 1 57     2     1    19  1.5   NA    NA    0.5
7  #21908CFF 2 53     2     1    19  1.5   NA    NA    0.5
8  #21908CFF 3 54     2     1    19  1.5   NA    NA    0.5
9  #21908CFF 4 52     2     1    19  1.5   NA    NA    0.5
10 #21908CFF 5 52     2     1    19  1.5   NA    NA    0.5
11 #FDE725FF 1 45     3     1    19  1.5   NA    NA    0.5
12 #FDE725FF 2 49     3     1    19  1.5   NA    NA    0.5
13 #FDE725FF 3 48     3     1    19  1.5   NA    NA    0.5
14 #FDE725FF 4 46     3     1    19  1.5   NA    NA    0.5
15 #FDE725FF 5 45     3     1    19  1.5   NA    NA    0.5

[[2]]
      colour x  y group PANEL size linetype alpha
1  #440154FF 1 58     1     1  0.5        1    NA
2  #440154FF 2 55     1     1  0.5        1    NA
3  #440154FF 3 36     1     1  0.5        1    NA
4  #440154FF 4 29     1     1  0.5        1    NA
5  #440154FF 5 53     1     1  0.5        1    NA
6  #21908CFF 1 57     2     1  0.5        1    NA
7  #21908CFF 2 53     2     1  0.5        1    NA
8  #21908CFF 3 54     2     1  0.5        1    NA
9  #21908CFF 4 52     2     1  0.5        1    NA
10 #21908CFF 5 52     2     1  0.5        1    NA
11 #FDE725FF 1 45     3     1  0.5        1    NA
12 #FDE725FF 2 49     3     1  0.5        1    NA
13 #FDE725FF 3 48     3     1  0.5        1    NA
14 #FDE725FF 4 46     3     1  0.5        1    NA
15 #FDE725FF 5 45     3     1  0.5        1    NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...