2012-11-28 9 views
7

La scala predefinita per ggplot2 per 13 o più colori non offre un elevato grado di differenziazione visiva. Inoltre, la scala di birra più lunga termina in 12 categorie (Set3).Consiglia un colore di scala per 13 o più categorie

Potete consigliare una scala di colori che sarebbe visivamente utile per 13 o più categorie?

esempio riproducibile:

dat <- data.frame(value=rnorm(100), 
category=sample(letters[1:13],100,replace=T), 
other=sample(letters[1:5],100,replace=T)) 

# Default Scale 
ggplot(dat, aes(other,value,color=category)) + 
geom_point(size=6) + 
coord_flip() 

# Brewer Scale // notice the blank at the end! 
ggplot(dat, aes(other,value,color=category)) + 
geom_point(size=6) + 
coord_flip() + 
scale_color_brewer(palette="Set3") 

Nota: sfaccettatura non è un'opzione nel mio caso (cliente non piace, vai a capire)

+2

c'è qualche discussione su http://stackoverflow.com/questions/6075140/in-r-how-do-i-change-the-color-value-of-just-one-value-in-ggplot2s- scale-fill-b/6076605 # 6076605 –

risposta

9

Si potrebbe utilizzare colorRampPalette e scale_colour_manual fudge una categoria 13 .

set3 <- colorRampPalette(brewer.pal('Set3',n=12)) 

ggplot(dat, aes(other,value,color=category)) + 
    geom_point(size=6) + 
    coord_flip() + 
    scale_color_manual(values = setNames(set3(13), levels(dat$category))) 

Ciò abbattere, in quanto i colori non sarà ben distinguibile se si imposta i numeri richiesti troppo alte.

+0

+1 Puntatore buono. Mi sono dimenticato di 'scale_colour_manual' –

+0

Inoltre mi ha portato a cose come:' scale_color_manual (values ​​= c (brewer.pal (12, "Set3"), "# 999999")) 'per esempio. –

Problemi correlati