Как добавить текст в каркас решетки в R - PullRequest
1 голос
/ 22 декабря 2011

Добрый день всем,

Я хочу добавить плавающий текст в моем каркасном графике, и я довольно запутался. Я, конечно, могу добавить текст в качестве заголовка (например, 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» в этот график, где-нибудь всплывающий, как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

В качестве альтернативы вы можете добавить текст после того, как вы нанесли на экран свой каркас с помощью

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

Функция unit позволяет вам указать местоположение текста.Если вы используете "npc" в качестве своей единицы, общая ширина и высота вашего графика будут равны 1. Таким образом, в приведенном выше примере текст будет отображаться в верхнем правом углу, а x=y=unit(0.5, "npc") будет отображать его в центре.

2 голосов
/ 22 декабря 2011

Переопределить функцию панели и добавить текст с помощью 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")
    }
)
...