2012-08-23 28 views
-3

有没有一种方法可以根据矩形图中的分类值分配两种不同的颜色?R如何根据矩形图中的分类变量分配两种不同的颜色?

rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"]) 

明显..这是不对的.....

区由两个分类变量 - “理论” 与 “职业”。

+1

您的原始数据框架将有所帮助 – MattLBeck

+0

欢迎使用堆栈溢出!如果你制作了一个可重现的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)来展示你的问题,我们会发现它更容易回答。 – Andrie

回答

4

你接近,以下工作:

plot(1:10) 
mydf <- data.frame(xl =1:5, yb=1:5, xr=2:6, yt=10:6, 
    group=sample(c('A','B'), 5, replace=TRUE)) 
with(mydf, rect(xl, yb, xr, yt, col=c('black','grey')[group])) 

该组在这里是很重要一个因素(不只是一个字符向量)。但是,如果您使用颜色的命名向量(名称与组变量匹配),那么它也可以使用字符向量。

2

您需要为要绘制的每种颜色调用rect,并在数据框的分类列中包含这些颜色,以便您可以将每个类别的数据过滤为rect

我不知道你的原始数据是什么样的,所以这里的类似的东西:

# set up simple plotting window 
plot.new() 
plot.window(xlim=c(0,6),ylim=c(0,8)) 

# example data. Using colour as the categorical value we will filter on 
sample.d <- data.frame(x=c(3,4,5,6), yb=c(1,3,5,7), yt=c(0,2,4,6), 
colour=c("black","black","red","red")) 

# draw black rectangles 
black.d <- sample.d[sample.d$colour == "black",] 
rect(0, black.d$yb, black.d$x, black.d$yt, col="black") 

# draw red rectangles 
red.d <- sample.d[sample.d$colour == "red",] 
rect(0, red.d$yb, red.d$x, red.d$yt, col="red") 
相关问题