2016-05-31 126 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")