R Language
Farbschemata für Grafiken
Suche…
viridis - druck- und farbblindfreundliche Paletten
Viridis (benannt nach dem Chromis viridis-Fisch ) ist ein kürzlich entwickeltes Farbschema für die Python-Bibliothek matplotlib
(die Videopräsentation über den Link erklärt, wie das Farbschema entwickelt wurde und welche Hauptvorteile es bietet). Es wird nahtlos nach R
portiert.
Es gibt vier Varianten von Farbschemata: magma
, plasma
, inferno
und viridis
(Standard). Sie werden mit dem option
und entsprechend als A
, B
, C
und D
codiert. Um einen Eindruck von den 4 Farbschemata zu erhalten, schauen Sie sich die Karten an:
( Bildquelle )
Das Paket kann von CRAN oder Github installiert werden.
Die Vignette für das viridis
Paket ist einfach genial.
Ein ggplot2
Merkmal des viridis
Farbschemas ist die Integration mit ggplot2
. Innerhalb des Pakets sind zwei ggplot2
Funktionen definiert: scale_color_viridis()
und scale_fill_viridis()
. Siehe das Beispiel unten:
library(viridis)
library(ggplot2)
gg1 <- ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = disp), size = 3)+
scale_color_viridis(option = "B")+
theme_minimal()+
theme(legend.position = c(.8,.8))
gg2 <- ggplot(mtcars)+
geom_violin(aes(x = factor(cyl), y = hp, fill = factor(cyl)))+
scale_fill_viridis(discrete = T)+
theme_minimal()+
theme(legend.position = 'none')
library(cowplot)
output <- plot_grid(gg1,gg2, labels = c('B','D'),label_size = 20)
print(output)
RColorBrewer
Das ColorBrewer- Projekt ist ein sehr beliebtes Werkzeug, um harmonisch passende Farbpaletten auszuwählen. RColorBrewer
ist ein Port des Projekts für R
und bietet auch farbenblindfreundliche Paletten an.
Ein Anwendungsbeispiel
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
erstellt Farboptionen für ggplot2
: scale_color_brewer
und scale_fill_brewer
.
library(ggplot2)
ggplot(mtcars)+
geom_point(aes(x = mpg, y = hp, color = factor(cyl)), size = 3)+
scale_color_brewer(palette = 'Greens')+
theme_minimal()+
theme(legend.position = c(.8,.8))
Eine praktische Funktion, um einen Farbvektor zu erkennen
Häufig muss die ausgewählte Farbpalette betrachtet werden. Eine elegante Lösung ist die folgende selbst definierte Funktion:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Ein Anwendungsbeispiel
color_glimpse(blues9)
Farbraum - Klicken und Ziehen der Benutzeroberfläche für Farben
Der colorspace
bietet eine GUI zum Auswählen einer Palette. Beim Aufruf der Funktion choose_palette()
das folgende Fenster:
Wenn die Palette ausgewählt ist, drücken Sie einfach OK
und vergessen Sie nicht, die Ausgabe in einer Variablen zu speichern, z. B. pal
.
pal <- choose_palette()
Die Ausgabe ist eine Funktion, die n
(number) als Eingabe verwendet und einen Farbvektor der Länge n
entsprechend der ausgewählten Palette erzeugt.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
grundlegende R-Farbfunktionen
Funktionsfarben colors()
listet alle Farbnamen auf, die von R erkannt werden. Es gibt ein schönes PDF, in dem man diese Farben tatsächlich sehen kann.
colorRampPalette
erstellt eine Funktion, die einen Satz vorgegebener Farben interpoliert, um neue Farbpaletten zu erstellen. Diese Ausgabefunktion nimmt n
(number) als Eingabe und erzeugt einen Farbvektor der Länge n
die Ausgangsfarben interpoliert.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Jede bestimmte Farbe kann mit einer rgb()
Funktion erzeugt werden:
rgb(0,1,0)
produziert green
Farbe.
Farbblindfreundliche Paletten
Obwohl farbblinde Menschen eine breite Palette von Farben erkennen können, kann es schwierig sein, bestimmte Farben zu unterscheiden.
RColorBrewer
bietet RColorBrewer
Paletten:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
Das Color Universal Design der Universität Tokio bietet folgende Paletten an:
#palette using grey
cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
#palette using black
cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")