有没有办法根据矩形图中的分类值分配两种不同的颜色?
rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"])
显然……这是错误的……
领域由两个分类变量组成——“理论”和“职业”。
有没有办法根据矩形图中的分类值分配两种不同的颜色?
rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"])
显然……这是错误的……
领域由两个分类变量组成——“理论”和“职业”。
你很接近,以下工作:
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 是一个因素(不仅仅是一个字符向量)。但是,如果您使用颜色的命名向量(名称与组变量匹配),那么它也可以与字符向量一起使用。
您需要调用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")