【问题标题】:How to add text to a lattice wireframe in R如何将文本添加到 R 中的格线框
【发布时间】:2012-01-26 06:18:56
【问题描述】:

大家好,

我想在我的线框图中添加浮动的文本,我很困惑。我当然可以将文本添加为​​标题(例如 main="Hello World"),但我不想在标题中包含我的特定文本

这是一个示例线框:

  library(lattice)
  #set up some simplified data
  x <- seq(-.8, .8, .1)
  y <- seq(-.8, .8, .1)
  myGrid <- data.frame(expand.grid(x,y))
  colnames(myGrid) <- c("x","y")
  myGrid$z <- myGrid$x + myGrid$y

  wireframe(
     myGrid$z ~ myGrid$x * myGrid$y, 
     xlab="X", ylab="Y", zlab="Z",
     scales = list(z.ticks=5, arrows=FALSE, col="black", font=3, tck=1)
  )

如果我想在这个浮动的地方添加“Hello World”,我该怎么做?

【问题讨论】:

    标签: r text lattice wireframe


    【解决方案1】:

    覆盖面板功能并添加带有grid.text的文本。

    wireframe(
        myGrid$z ~ myGrid$x * myGrid$y, 
        xlab="X", ylab="Y", zlab="Z",
        scales = list(z.ticks=5, arrows=FALSE, col="black", font=3, tck=1),
        panel = function(...)
        {
          panel.wireframe(...)
          grid.text("some text", 0, 0, default.units = "native")
        }
    )
    

    【讨论】:

    • 如果我理解正确,“一些文本”将在图表本身内绘制。有没有办法让它漂浮在图表之外?
    • 您可以通过trellis.par.get("clip")关闭将文本剪切到面板。
    【解决方案2】:

    或者,您可以在绘制线框后添加文本

    grid::grid.text("some text", x=unit(0.7, "npc"), y=unit(0.8, "npc"))
    

    unit 函数允许您指定文本的位置。如果您使用 "npc" 作为单位,则图表的总宽度和高度为 1。因此,上面的示例将在右上角显示您的文本,而 x=y=unit(0.5, "npc") 会将其绘制在中心。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多