我有一个光栅文件(1440 * 720行)包含值1,2和3。 当我绘制文件时,我得到了三种颜色的地图,但我不知道哪个是哪个。 我怎样才能按照我的意愿放置这些颜色:
1=red
2=blue
3=green
代码:
pvm <- file("C:\\User_sm-das.bin","rb")
cor1<- readBin(pvm, numeric(), size=4, n=1440*720, signed=TRUE)
r <-raster(t(matrix((data=cor1), ncol=720, nrow=1440)))
image(r)
答案 0 :(得分:3)
您可以使用image.plot
中的fields
为图片添加图例。这是一个例子:
首先我生成一些数据:
set.seed(1234)
x<- 1:5; y<- 1:5
z<- matrix(sample(c(1,2,3),25,rep=TRUE),ncol=5,byrow=TRUE)
然后使用fields
,您可以使用image
参数添加图例。
# fields
library(fields)
image.plot(x,y,z,col = c("blue" , "red" ,"yellow"),
interpolate=TRUE)
请注意,如果您想将光栅矩阵转换为颜色矩阵,可以执行以下操作:
## raster
r <- raster(ncol=5, nrow=5)
values(r) <- z
mm <- matrix(c("blue" , "red" ,"yellow")[values(r)],
ncol=5,byrow=TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] "blue" "red" "red" "red" "yellow"
[2,] "red" "blue" "blue" "red" "red"
[3,] "yellow" "red" "blue" "yellow" "blue"
[4,] "yellow" "blue" "blue" "blue" "blue"
[5,] "blue" "blue" "blue" "blue" "blue"
问题image
您无法绘制需要数字值的矩阵颜色。但您可以使用grid.raster
包中的grid
:
library(grid)
grid.raster(mm,interpolate=FALSE)
编辑
要手动修复图例,您可以使用axis.args
plot.image
参数进行播放
## fields
image.plot(x,y,z,
col = c("red" , "green" ,"blue"),
axis.args=list( at=0:3, labels=0:3 ))
答案 1 :(得分:0)
使用RaterLayer'r',你可以做情节(r)来获得情节和传奇