2012-07-30 40 views
1

這裏多邊形繪圖顏色和cordinate矩陣對象是多邊形座標:迴路中的R

#數據

greenM <-matrix(c(5,5,95,45,5,65,5,45,65,5,5,95),nrow=4,byrow=TRUE) 
blueM <-matrix(c(35,15,65,35,45,35,5,75,35,5,45,65,35,15,65), 
nrow=5,byrow=TRUE) 
purpleM <-matrix(c(95,5,15,95,5,5,35,75,5,35,45,35,55,45,15,95,5,15), 
    nrow=6,byrow=TRUE) 
redM <-matrix(c(35,45,35,35,75,5,5,95,5,5,75,35,35,45,35), 
nrow=5,byrow=TRUE) 
yellowM <-matrix(c(95,5,15,45,5,65,35,15,65,35,45,35,55,45, 
15,95,5,15),nrow=6,byrow=TRUE) 

這裏的情節(unlooped,但我想用短自動長代碼,以便地塊是X號可以用顏色x個)

plot(NA,NA,xlim=c(0,10),ylim=c(0,100),asp=1,bty="n",axes=F,xlab="",ylab="") 
polygon(greenM,col="green",border=NULL) 
polygon(blueM,col="blue",border=NULL) 
polygon(purpleM,col="purple",border=NULL) 
polygon(redM,col="red",border=NULL) 
polygon(yellowM,col="yellow",border=NULL) 

我怎麼能創造如此,它適用於不同顏色coordiantes的列表,以便看看這樣的方式產生。

mycolist <- list (greenM, blueM, purpleM, redM, yellowM) 
col1 <- c("green", "blue", "purple", "red", "yellow") 

回答

2

退房mapply

mycolist <- list (greenM, blueM, purpleM, redM, yellowM) 
col1 <- c("green", "blue", "purple", "red", "yellow") 
plot(NA,NA,xlim=c(0,10),ylim=c(0,100),asp=1,bty="n",axes=F,xlab="",ylab="") 
mapply(polygon,x=mycolist,col=col1) 

如果你不希望所有的NULL輸出到屏幕上,只需將它包裝在invisible

invisible(mapply(polygon,x=mycolist,col=col1))