【问题标题】:coloring pixel matrix with selected colors in R用R中的选定颜色着色像素矩阵
【发布时间】:2015-03-28 01:16:19
【问题描述】:

我有一个像素矩阵如下:

0000 0001 0010 0100 1000 0011 0101 0110 1001 1010 1100 0111 1011 1101 1110 1111
CTR_NCOR      0    0    0    0    1    0    0    0    1    1    1    0    1    1    1    1
CTR_CTRI      0    0    0    1    0    0    1    1    0    0    1    1    0    1    1    1
NCOR_NCORI    0    0    1    0    0    1    0    1    0    1    0    1    1    0    1    1
NCORI_CTRI    0    1    0    0    0    1    1    0    1    0    0    1    1    1    0    1

我可以使用 R 中的image() 函数创建像素矩阵,但只能使用两种颜色。 我正在尝试将以下“颜色矩阵”应用于图像

 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
[1,]    0    0    0    0    1    0    0    0    2     2     2     0     3     3     3     4
[2,]    0    0    0    1    0    0    2    2    0     0     2     3     0     3     3     4
[3,]    0    0    1    0    0    2    0    2    0     2     0     3     3     0     3     4
[4,]    0    1    0    0    0    2    2    0    2     0     0     3     3     3     0     4

以便每个正方形使用相应的数字 as.factor() 为具有 1 的单元格着色。 使用

image(first_matrix, col=as.factor(second_matrix),axes=F)

我只得到黑色和蓝色方块,而我想要得到的是(按照第二个矩阵中的数字)

  • 灰色(代表 0)
  • 绿色(1s)
  • 红色(2s)
  • 蓝色(3s)
  • 浅蓝色(4s)

任何见解都会很棒!谢谢:)

【问题讨论】:

  • 如果使用矩阵,您应该忘记使用因子。该类对象不接受允许因子存在于 R 世界中的必要属性。

标签: r image matrix colors


【解决方案1】:

你可以试试这个。 R-indexing 以 1 而不是 0 开始):

image( x=1:4, y= 1:16, z=1+yourmat, 
      col= c("gray","green","red","blue","lightblue") )

yourmat <- 
structure(c(0, 0, 0, 0, 1, 0, 0, 0, 2, 2, 2, 0, 3, 3, 3, 4, 0, 
0, 0, 1, 0, 0, 2, 2, 0, 0, 2, 3, 0, 3, 3, 4, 0, 0, 1, 0, 0, 2, 
0, 2, 0, 2, 0, 3, 3, 0, 3, 4, 0, 1, 0, 0, 0, 2, 2, 0, 2, 0, 0, 
3, 3, 3, 0, 4), .Dim = c(4L, 16L))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 2015-08-18
    • 2010-10-21
    相关资源
    最近更新 更多