Geo*_*-sp 5 plot r raster lattice
我想在levelplot中添加文本区域中的文本.在下面的示例中,我需要在指向位置的某处的文本.
library (raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r)
Run Code Online (Sandbox Code Playgroud)
我试过mtext函数没有成功.有什么建议?
mtext("text", side=3, line=0)
Run Code Online (Sandbox Code Playgroud)
您可以使用较低级别的网格图形功能对绘图进行注释.在这种情况下,执行以下操作:
library(grid)
seekViewport("plot_01.legend.top.vp")
grid.text("Hello", x=0, y=unit(1,"npc") + unit(0.4, "lines"), just=c("left", "bottom"),
gp=gpar(cex=1.6))
Run Code Online (Sandbox Code Playgroud)
rasterVis和其他基于格的包使用网格图形系统,而不是基础图形系统的mtext()一部分.
在这里,使用网格,我是如何在视口左上角0.4行(技术网格术语)上添加文本,其中打印上边距图.
首先,找到相关视口的名称.
library(grid)
levelplot(r)
grid.ls(viewport=TRUE, grobs=FALSE) ## Prints out a listing of all viewports in plot
Run Code Online (Sandbox Code Playgroud)
快速扫描返回的列表grid.ls()会打开一个名为的视口plot_01.legend.top.vp,看起来像是一个有前途的候选者.如果你想检查它是否是正确的,你可以在它周围绘制一个矩形,如下所示(它使用视口的完整路径):
grid.rect(vp = "plot_01.toplevel.vp::plot_01.legend.top.vp",
gp = gpar(col = "red"))
Run Code Online (Sandbox Code Playgroud)然后,使用网格的极为灵活的坐标系,将所需文本放在该视口左上角的正上方.
ll <- seekViewport("plot_01.legend.top.vp")
grid.text("Hello", x = 0, y = unit(1,"npc") + unit(0.4, "lines"),
just = c("left", "bottom"),
gp = gpar(cex=1.6))
upViewport(ll) ## steps back up to viewport from which seekViewport was called
Run Code Online (Sandbox Code Playgroud)