gpt4 book ai didi

r - 如何将文本添加到 rasterVis levelplot 中的特定/固定位置

转载 作者:行者123 更新时间:2023-12-04 09:34:03 25 4
gpt4 key购买 nike

事实上,这个问题由针对相同行为的两个问题组成。

  • 如何将文本(因每个面板而异)添加到固定位置
    面板区?我知道 panel.textlatticeExtra::layer solution但它使用绘图区域坐标添加文本。为了
    例如,我想在每个面板的右下角添加文本
    即使他们的规模不同。
  • 如何在 levelplot 面板区域之外添加文本? Method explainedhere要求 levelplot 有 plot_01.legend.top.vp区域
    添加我没有的文本和 trellis对象被绘制
    前。此外,我想在 ylab 的左侧添加文本显示在
    下图。我用过 ylab在这里说明行的含义,但我
    需要表示 y 轴值的第二个 ylab。我找到了另一个
    question对于这个问题,但它不起作用。

  • Sample plot

    上图由 raster::stack 创建对象和 rasterVis::levelplot方法。即使我更喜欢优雅的解决方案,我也同意采用肮脏的解决方案。此外,尽管存在上述问题,但我对使用 levelplot 的其他方法持开放态度。 .

    最佳答案

    R-sig-Geo 目前正在讨论一个非常相似的问题。 ,看看我在那里提供的解决方案。这是相应的示例代码,它允许您使用 trellis.focus(..., clip.off = TRUE) 在格状图的面板区域内部或外部添加自定义文本注释。来自 格子 .

    library(rasterVis)
    library(grid)

    ## sample data
    f <- system.file("external/test.grd", package="raster")
    r <- raster(f)
    s <- stack(r, r+500, r-500, r+200)

    p <- levelplot(s, layout = c(2, 2), names.att = rep("", 4),
    scales = list(y = list(rot = 90)))

    ## labels
    cls <- c("col1", "col2")
    rws <- c("row1", "row2")

    png("~/rasterVis.png", width = 14, height = 16, units = "cm", res = 300L)
    grid.newpage()
    print(p, newpage = FALSE)

    ## loop over panels to be labelled (ie 1:3)
    panels = trellis.currentLayout()
    for (i in 1:3) {

    # focus on current panel of interest and disable clipping
    ids <- which(panels == i, arr.ind = TRUE)
    trellis.focus("panel", ids[2], ids[1], clip.off = TRUE)

    # add labels
    if (i %in% c(1, 3)) {
    if (i == 1) {
    grid.text(cls[1], x = .5, y = 1.1) # add 'col1'
    grid.text(rws[1], x = -.35, y = .5, rot = 90) # add 'row1'
    } else {
    grid.text(rws[2], x = -.35, y = .5, rot = 90) # add 'row2'
    }
    } else {
    grid.text(cls[2], x = .5, y = 1.1) # add 'col2'
    }

    trellis.unfocus()
    }

    dev.off()

    rasterVis

    您可以在此处找到更多信息:
  • https://stat.ethz.ch/pipermail/r-help/2005-June/072745.html
  • http://r.789695.n4.nabble.com/How-to-put-text-outside-an-xyplot-td975850.html
  • 关于r - 如何将文本添加到 rasterVis levelplot 中的特定/固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007241/

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