Я часто использую пакет lattice для создания фигур. Затем я использую grid::grid.text()
для аннотирования фигур за пределами области построения. Обычно я делаю PDF-файлы, и проблем не возникает.
Теперь мне нужно сохранить свои цифры в других форматах, например PNG. И теперь я обнаружил, что когда я пытаюсь аннотировать за пределами области построения, аннотации обрезаются. Вот небольшой пример:
library(grid)
library(gridExtra)
library(lattice)
myPanel <- function (...) {
panel.xyplot(...)
grid.text("This is a very, very long line", x = .99, y = .5)
}
xyplot(1:10 ~ 1:10, panel = myPanel, par.settings = list(clip = list(panel="off")))
Я могу обойти эту проблему, используя gridExtra::grid.arrange()
, но это кажется слишком сложным способом решения простой проблемы. :
myPlot_grob <- grid.grab(wrap = TRUE)
rectTransparent <- rectGrob(gp = gpar(col = 'transparent', fill = 'transparent'))
grid.arrange(
grobs = list(
rectTransparent,
myPlot_grob,
rectTransparent),
ncol = 3,
widths = unit(c(2, 4, 2), 'inches'))
Есть способ попроще? У меня есть и книга Дипаяна Саркара о решетке, и R Graphics, Пола Мюррелла, но я не нашел в них четкого решения. Есть соответствующие сообщения SO для проблемы, когда она возникает в базовой графике или ggplot , но я не нашел сообщений, посвященных проблеме в решетчатой графике.