gpt4 book ai didi

r - 在 levelplot 面板区域之外添加文本

转载 作者:行者123 更新时间:2023-12-04 17:46:34 26 4
gpt4 key购买 nike

我想在 levelplot 的绘图区域之外添加文本。在下面的示例中,我需要在指定位置的某处放置文本。

library (raster)
library(rasterVis)

f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r)

我尝试了 mtext 函数但没有成功。有什么建议么?
mtext("text", side=3, line=0)

enter image description here

最佳答案

tldr;

您可以使用较低级别的 对绘图进行注释。网格 图形功能。在这种情况下,请执行以下操作:

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))

光栅可见 和其他 格子基于 - 的软件包使用 网格 图形系统,而不是其 mtext() 的基本图形系统是一部分。

在这里,使用 网格 , 是我如何在打印上边距图的视口(viewport)(技术 网格 术语)左上角上方0.4 行的位置添加文本。
  • 首先,找到相关视口(viewport)的名称。
    library(grid)
    levelplot(r)
    grid.ls(viewport=TRUE, grobs=FALSE) ## Prints out a listing of all viewports in plot

    快速浏览 grid.ls() 返回的列表出现一个名为 plot_01.legend.top.vp 的视口(viewport),这看起来是一个很有前途的候选人。如果您想检查它是否正确,可以在其周围绘制一个矩形,如下所示(使用视口(viewport)的完整路径):
    grid.rect(vp = "plot_01.toplevel.vp::plot_01.legend.top.vp",
    gp = gpar(col = "red"))
  • 然后,使用 网格 的非常灵活的坐标系,将所需的文本放置在该视口(viewport)的左上角上方。
    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

  • enter image description here

    关于r - 在 levelplot 面板区域之外添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660688/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com