2011-12-30 33 views
6

我正在尋找一種方法來繪製字符類型的矩陣:情節字符類型的矩陣

m=matrix(data=c("A","A","B","B","B","C","C","B"),nrow=4,ncol=2) 
> m 
    [,1] [,2] 
[1,] "A" "B" 
[2,] "A" "C" 
[3,] "B" "C" 
[4,] "B" "B" 

與定義的一組顏色

A="Yellow" 
B="Blue" 
C="Green" 

我應該從矩陣傳遞到ascii並使用圖片()sp包裹

我期待來回這樣的事情:

enter image description here

+0

'image'是PKG:圖形。下面的第二個答案應該滿足,至少在交換行和列時。您可以使用以下代碼查找所需的綠色:'grep(「green」,colors(),value = TRUE)'。 「深綠色」太黑了。 – 2011-12-30 18:01:57

回答

10

它,而取決於你所說的「繪製矩陣」的意思:

m2 <- m 
m2[] <- c("yellow", "blue","green")[match(m, c("A","B","C"))] 
m2 
#------------ 
[,1]  [,2] 
[1,] "yellow" "blue" 
[2,] "yellow" "green" 
[3,] "blue" "green" 
[4,] "blue" "blue" 
#------------ 
plot(row(m2), col(m2), col=m2, pch=18, cex=4) 

該地塊指定顏色的實心菱形在由矩陣m的行和列確定的矩陣位置處。另一種方式與image

m2[] <- match(m, c("A","B","C")) 
mode(m2) <- "numeric" 
m2 
image(1:nrow(m2), 1:ncol(m2), m2, col=c("yellow", "blue","green")) 

enter image description here

+0

'grid.raster(m2,interpolate = FALSE)'如果你不想要任何軸等 – baptiste 2011-12-30 22:45:38

+0

這與上面的m2對象拋出錯誤,除以最大(m2)我得到灰度。 – 2011-12-30 22:52:00

+0

我的意思是第一個m2(顏色名稱) – baptiste 2011-12-30 23:32:56