-3

有没有办法根据矩形图中的分类值分配两种不同的颜色?

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

显然……这是错误的……

领域由两个分类变量组成——“理论”和“职业”。

4

2 回答 2

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

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

于 2012-08-23T13:02:32.120 回答
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")
于 2012-08-23T12:34:55.060 回答