有没有一种方法可以根据矩形图中的分类值分配两种不同的颜色?R如何根据矩形图中的分类变量分配两种不同的颜色?
rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"])
明显..这是不对的.....
区由两个分类变量 - “理论” 与 “职业”。
有没有一种方法可以根据矩形图中的分类值分配两种不同的颜色?R如何根据矩形图中的分类变量分配两种不同的颜色?
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]))
该组在这里是很重要一个因素(不只是一个字符向量)。但是,如果您使用颜色的命名向量(名称与组变量匹配),那么它也可以使用字符向量。
您需要为要绘制的每种颜色调用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")
您的原始数据框架将有所帮助 – MattLBeck
欢迎使用堆栈溢出!如果你制作了一个可重现的例子(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)来展示你的问题,我们会发现它更容易回答。 – Andrie