2012-11-28 47 views
7

ggplot2對於13種或更多顏色的默認比例不能提供高度的視覺差異。 此外,最長的啤酒啤酒秤以12類(Set3)結束。建議13種或更多種類的比例尺顏色

你能推薦一種色彩比例,它可以在13個或更多的類別中直觀使用嗎?

重複的例子:

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

注:磨製是不是在我的情況選擇(客戶端不喜歡它,去圖)

+2

有一些討論在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 –

回答

9

你可以使用colorRampPalettescale_colour_manual捏造第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))) 

這會打破,因爲如果您設置所需的數字太高,顏色不會很好地區分。

+0

+1好的指針。我忘了'scale_colour_manual' –

+0

也引導了我,例如'scale_color_manual(values = c(brewer.pal(12,「Set3」),「#999999」))'。 –