R Language
Färgscheman för grafik
Sök…
viridis - tryck och färgblindvänliga paletter
Viridis (uppkallad efter chromis viridis-fisken ) är ett nyligen utvecklat färgschema för Python-bibliotekets matplotlib
(videouppvisningen genom länken förklarar hur färgschemat har utvecklats och vilka som är dess främsta fördelar). Den är sömlöst portad till R
Det finns fyra varianter av färgscheman: magma
, plasma
, inferno
och viridis
(standard). De väljs med option
och kodas som A
, B
, C
och D
, på motsvarande sätt. För att få ett intryck av de fyra färgscheman, titta på kartorna:
( bild souce )
Paketet kan installeras från CRAN eller github .
Vignetten för viridis
paketet är bara lysande.
Trevligt inslag i viridis
färgschema är integration med ggplot2
. I paketet ggplot2
två ggplot2
specifika funktioner: scale_color_viridis()
och scale_fill_viridis()
. Se exemplet nedan:
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
ColorBrewer- projektet är ett mycket populärt verktyg för att välja harmoniskt matchande färgpaletter. RColorBrewer
är en port i projektet för R
och erbjuder också färgblindvänliga paletter.
Ett exempel på användning
colors_vec <- brewer.pal(5, name = 'BrBG')
print(colors_vec)
[1] "#A6611A" "#DFC27D" "#F5F5F5" "#80CDC1" "#018571"
RColorBrewer
skapar färgalternativ för ggplot2
: scale_color_brewer
och 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))
En praktisk funktion för att skymta en vektor med färger
Ofta finns det ett behov av att skymta den valda färgpaletten. En elegant lösning är följande självdefinerade funktion:
color_glimpse <- function(colors_string){
n <- length(colors_string)
hist(1:n,breaks=0:n,col=colors_string)
}
Ett exempel på användning
color_glimpse(blues9)
colourpace - klicka & dra gränssnittet för färger
colorspace
ger GUI för att välja en palett. På samtalet från choose_palette()
-funktion choose_palette()
följande fönster:
När paletten är vald, tryck bara på OK
och glöm inte att lagra utgången i en variabel, t.ex. pal
.
pal <- choose_palette()
Utgången är en funktion som tar n
(nummer) som inmatning och producerar en färgvektor med längd n
enligt den valda paletten.
pal(10)
[1] "#023FA5" "#6371AF" "#959CC3" "#BEC1D4" "#DBDCE0" "#E0DBDC" "#D6BCC0" "#C6909A" "#AE5A6D" "#8E063B"
grundläggande R-färgfunktioner
Funktionsfärger colors()
listar alla färgnamn som känns igen av R. Det finns en trevlig PDF där man faktiskt kan se dessa färger.
colorRampPalette
skapar en funktion som interpolerar en uppsättning givna färger för att skapa nya färgpaletter. Denna utgångsfunktion tar n
(nummer) som inmatning och producerar en färgvektor med längden n
interpolerar de initiala färgerna.
pal <- colorRampPalette(c('white','red'))
pal(5)
[1] "#FFFFFF" "#FFBFBF" "#FF7F7F" "#FF3F3F" "#FF0000"
Varje specifik färg kan produceras med en rgb()
-funktion:
rgb(0,1,0)
ger green
färg.
Färgblindvänliga paletter
Även om färgblinda människor känner igen ett brett spektrum av färger, kan det vara svårt att skilja mellan vissa färger.
RColorBrewer
erbjuder färgblindvänliga paletter:
library(RColorBrewer)
display.brewer.all(colorblindFriendly = T)
Color Universal Design från University of Tokyo föreslår följande paletter:
#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")