[r] ggplot2 기본 색상 팔레트 에뮬레이션

원하는 수의 색상에 대해 ggplot2의 기본 색상 팔레트를 에뮬레이트하는 데 어떤 기능을 사용할 수 있습니까? 예를 들어, 3을 입력하면 다음 색상으로 16 진수 색상의 문자형 벡터가 생성됩니다.
여기에 이미지 설명을 입력하십시오



답변

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 색 ggplot

show_col(hue_pal()(3))

3 색 ggplot


답변

이 답변은 모두 훌륭하지만 stackoverflow에서 발견 한 또 다른 유용한 정보를 공유하고 싶었습니다. 여기에는 직접 링크가 있습니다.

기본적으로 @DidzisElferts는 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


답변

Hadley Wickham의 ggplot2 book 106 페이지에서 :

기본 색 구성표 인 scale_colour_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)
}

barplot에서 이것을 보여주기 :

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

여기에 이미지 설명을 입력하십시오


답변