2012-08-23 26 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") 
相關問題