studio - ggplot2 r




Emulieren Sie die Standard-Farbpalette von ggplot2 (3)

Ab Seite 106 des ggplot2-Buches von Hadley Wickham:

Das Standardfarbschema scale_colour_hue wählt gleichmäßig beabstandete Farbtöne um das hcl-Farbrad.

Mit ein bisschen Reverse Engineering können Sie diese Funktion konstruieren:

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

Dies im Barplot demonstrieren:

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

Mit welcher Funktion kann ich die Standard-Farbpalette von ggplot2 für eine gewünschte Anzahl von Farben emulieren? Zum Beispiel würde eine Eingabe von 3 einen Zeichenvektor von HEX-Farben mit diesen Farben erzeugen:


Dies ist das Ergebnis von

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

show_col(hue_pal()(3))


Es ist nur gleichmäßig verteilt Farbtöne um das Farbrad, ab 15:

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

Beispielsweise:

n = 4
cols = gg_color_hue(n)

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





ggplot2