programing

ggplot2 기본 색상표 에뮬레이트

css3 2023. 6. 4. 22:26

ggplot2 기본 색상표 에뮬레이트

원하는 색상 수에 대해 ggplot2의 기본 색상 팔레트를 에뮬레이트하는 데 사용할 수 있는 기능은 무엇입니까?예를 들어, 3을 입력하면 다음과 같은 색상의 HEX 문자 벡터가 생성됩니다.여기에 이미지 설명 입력

색상은 15부터 시작하여 색상 휠 주위에 동일한 간격으로 표시됩니다.

gg_color_hue <- function(n) {
  hues = seq(15, 375, length = n + 1)
  hcl(h = hues, l = 65, c = 100)[1:n]
}

예:

n = 4
cols = gg_color_hue(n)

dev.new(width = 4, height = 4)
plot(1:n, pch = 16, cex = 2, col = cols)

여기에 이미지 설명 입력

이것은 의 결과입니다.

library(scales)
show_col(hue_pal()(4))

4색 gg 그림

show_col(hue_pal()(3))

삼색 gg 그림

이 답변들은 모두 매우 좋지만 스택 오버플로에서 발견한 또 다른 유용한 내용을 공유하고자 합니다. 여기 직접 링크가 있습니다.

기본적으로 @Didzis Elferts는 ggplot이 사용자가 만든 플롯을 만드는 데 사용하는 모든 색상, 좌표 등을 얻을 수 있는 방법을 보여줍니다.아주 좋아요!

p <- ggplot(mpg,aes(x=class,fill=class)) + geom_bar()
ggplot_build(p)$data
[[1]]
     fill  y count x ndensity ncount  density PANEL group ymin ymax xmin xmax
1 #F8766D  5     5 1        1      1 1.111111     1     1    0    5 0.55 1.45
2 #C49A00 47    47 2        1      1 1.111111     1     2    0   47 1.55 2.45
3 #53B400 41    41 3        1      1 1.111111     1     3    0   41 2.55 3.45
4 #00C094 11    11 4        1      1 1.111111     1     4    0   11 3.55 4.45
5 #00B6EB 33    33 5        1      1 1.111111     1     5    0   33 4.55 5.45
6 #A58AFF 35    35 6        1      1 1.111111     1     6    0   35 5.55 6.45
7 #FB61D7 62    62 7        1      1 1.111111     1     7    0   62 6.55 7.45

해들리 위컴의 ggplot2 책 106페이지에서:

기본 색상표인 scale_color_hue는 hcl 색상 휠 주위에 균일한 간격의 색상을 선택합니다.

약간의 리버스 엔지니어링을 통해 이 기능을 구성할 수 있습니다.

ggplotColours <- function(n = 6, h = c(0, 360) + 15){
  if ((diff(h) %% 360) < 1) h[2] <- h[2] - 360/n
  hcl(h = (seq(h[1], h[2], length = n)), c = 100, l = 65)
}

막대 그래프에서 이를 시연하는 방법:

y <- 1:3
barplot(y, col = ggplotColours(n = 3))

여기에 이미지 설명 입력

그림 대신 16진수 값을 가져오려면 다음을 사용할 수 있습니다.

hue_pal()(3)

이 코드 대신:

show_col(hue_pal()(3))

언급URL : https://stackoverflow.com/questions/8197559/emulate-ggplot2-default-color-palette