R image绘图 颜色

image函数绘图,按照值的大小,默认赋予一定颜色。

如果希望按照自己的想法,设置离散颜色的话,需要注意:

首先,去掉NA值,然后对你的图像值取唯一值,然后排序,从小到大。

例如:

testm = matrix(c(NA,5,5,2,2,2,3,3,3,4,4,4),nrow = 3,byrow = T)
testm

     [,1] [,2] [,3] [,4]
[1,]   NA    5    5    2
[2,]    2    2    3    3
[3,]    3    4    4    4


tm = raster(testm)
unique(tm[])

[1] NA  5  2  3  4

 

> sort(unique(tm[]))
[1] 2 3 4 5

> image(tm, col = c('red','green','blue','gray','orange'))
> text(tm)

 

 2是红色,3是绿色,4是灰色,5是橘色。蓝色没有显示。

因此,4个数字匹配5个颜色时,对5个颜色生成一个连续颜色条,从前向后,对齐颜色名称和你的唯一值顺序,如果颜色多了,则随机在相应位置选择某个颜色,如果颜色导少了,则按照顺序随机分配个颜色到对应的值上。

##########################################

> testm = matrix(c(NA,5,5,2,2,2,3,3,3,4,4,4),nrow = 4,byrow = T)
> testm
     [,1] [,2] [,3]
[1,]   NA    5    5
[2,]    2    2    2
[3,]    3    3    3
[4,]    4    4    4
> tm = raster(testm)
> unique(tm[])
[1] NA  5  2  3  4
> sort(unique(tm[]))
[1] 2 3 4 5
>
> image(tm, col = c('orange','gray','green'))
> text(tm)

 

 为了不出错误,一般可以设置颜色数量和唯一值数量完全一样。

而且颜色顺序可以自己调整

posted @ 2022-08-13 19:45  junjunang  阅读(167)  评论(0编辑  收藏  举报