使用R语言中rasterVis包里的levelplot函数可以快速方便地对栅格数据进行制图,非常实用,下面做简单地讲解实例。
多张图一块制作请参考:【R语言】栅格数据快速制图-levelplot函数(2)
栅格制图
# 加载package
library(raster)
library(rasterVis)
library(lattice)
基础展示:
根据坐标轴展示的栅格图像;
两个边缘分布展示为行列的平均值;
颜色图例;
levelplot(rprob)
对图像的栅格值进行对数变换(zscaleLog=TRUE),并添加水平等值线(contour=TRUE)。
levelplot(rprob, zscaleLog = TRUE, contour = TRUE)
改变边缘分布的函数
levelplot(rprob, zscaleLog = NULL, contour = TRUE, FUN.margin = median)
取消边缘分布,加上标题
levelplot(rprob, contour = TRUE, margin = FALSE, main = "p(dep > 1kg/m2 per eruption event)")
取消所有元素
levelplot(rprob, margin = FALSE, scales = list(draw = FALSE), colorkey = FALSE)
控制颜色变化点
miat = c(0, 0.25, 0.5, 0.75, 1)
levelplot(rprob, contour = TRUE, margin = FALSE, at = miat)
图例颜色与图的颜色相互独立。
通过colorkey参数来控制颜色键。定义颜色在颜色键中应该改变的位置:
myColorkey <- list(at = c(0, 0.5, 1))
levelplot(rprob, zscaleLog = NULL, contour = TRUE, margin = FALSE, at = miat,
colorkey = myColorkey)
我们通常想要在图片和颜色键上有一致的中断。
定义了颜色应该在哪里改变,应该写哪些标签,应该在哪里写
myColorkey <- list(at=miat, ## where the colors change
labels=list(labels=miat, ##what to print
at=miat)) ##where to print
levelplot(rprob,zscaleLog=NULL,contour=TRUE, margin=FALSE,at=miat,colorkey=myColorkey)
图例标签变化
myColorkey <- list(at = miat, labels = list(labels = c("Low", "Medium-low",
"Medium-high", "High"), at = miat + 0.125))
levelplot(rprob, zscaleLog = NULL, contour = TRUE, margin = FALSE, at = miat,
colorkey = myColorkey)
颜色主题,package(Lattice)
GrTheme (grey palette)
levelplot(rprob, contour = TRUE, margin = FALSE, at = (0:10)/10, par.settings = GrTheme)
保存图片
rprobrv1 <- levelplot(rprob, margin = FALSE, contour = TRUE, par.settings = rainbTheme10,
at = (0:10)/10, main = "p(dep > 1kg/m2 per eruption event)")
print(rprobrv1)
#为了将图形保存为图形文件,我们首先“打开”图形设备(在本例中是一个bmp文件),然后显示它,最后关闭设备:
bmp("rprobrv1.bmp", height = 1024 * 0.707, width = 1024) #0.707 is a convenient aspect.ratio
rprobrv1
dev.off()
Important: as with the rest of standard graphics in R, the file is not actually written until dev.off()
savename <- str_c('picture/',year*100+m,'.jpg')
p.picture=paste(savename)
jpeg(savename,height = 500 * 0.707, width = 500)
savepic <- levelplot(tgr_ts, par.settings = BuRdTheme,at = miat,margin = FALSE,colorkey=myColorkey,main = name)
print(savepic)
dev.off()
以上内容翻译、节选自:
https://rstudio-pubs-static.s3.amazonaws.com/16756_56e9817f4cab42ceae5bc28b788c2c01.html
如有侵权请联系作者删除或修改。