2011-12-30 63 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