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)
为了不出错误,一般可以设置颜色数量和唯一值数量完全一样。
而且颜色顺序可以自己调整