2016-05-31 48 views
0

我正在使用ggplot2在R中繪製圖。ggplot2:設置顏色 - >值的映射,獨立於值子集

我的情節是這樣的:

values_range 

ggplot(subset, aes(x, y, width = 0.5)) + 
geom_bar(aes(fill = factor(sort(values))), position = "stack", stat="identity") 

其中values_range是所有可能的矢量valuessubset是我的數據的子集

我怎麼能強迫ggplot選擇顏色fill總是以相同的方式獨立於valuessubset

例如,當values_range = [1, 2, 3, 4]subset1values = [1, 2, 3]subset2values = [1, 3, 4]

我想1, 2, 3, 4值有兩個subset1subset2圖相同的顏色。 默認情況下,它不是這樣,ggplot將給予相同的顏色2(1) - 3(2)3(1) - 4(2)

你有什麼想法,我怎麼能做到這一點?

+3

你試圖做這樣的事情[這](http://stackoverflow.com/q/6919025/324364)? – joran

回答

0

轉換你的價值觀因素首先

data$values <- factor(data$values) 
ggplot(subset, aes(x, y, width = 0.5)) + 
    geom_bar(aes(fill = values), position = "stack", stat="identity")