Сохранение пользовательских меток при использовании `c.trellis`

У меня есть два объекта решетки, которые я хотел бы объединить, используя c.trellis из latticeExtra (две цифры можно скачать здесь). Как вы можете видеть ниже, результирующий график наследует метки от первого рисунка, тогда как метки от второго рисунка отбрасываются. Можно ли сохранить разные метки оси Y при использовании c.trellis?

library(latticeExtra)

rsq_plt <- readRDS("rsq.rds")
err_plt <- readRDS("err.rds")

latticeExtra:::c.trellis(rsq_plt, err_plt, layout = c(1, 2))

сюжет

1 ответ

Решение

Просто для справки, похоже, что я наконец-то нашел правильное решение благодаря всесторонним настройкам параметров для решетчатых участков. Отключение scales на верхнем участке (через scales = list(draw = FALSE); обратите внимание, что файл "rsq.rds" был изменен в Интернете) до выполнения c.trellis и впоследствии update- объединенный сюжет с настроенными осями Y решил проблему.

## combine plots and increase left padding
plt <- latticeExtra:::c.trellis(rsq_plt, err_plt, layout = c(1, 2))
plt <- update(plt, 
              scales = list(draw = FALSE), 
              par.settings = list(
                layout.widths = list(left.padding = 6, right.padding = 0), 
                layout.heights = list(top.padding = 0, bottom.padding = 0)
              ))

## custom panel.axis
panel.fun <- function(...) {

  # allow to draw labels outside panel
  trellis.par.set("clip", list(panel = "off", strip = "off"))

  # add upper y-axis
  if (panel.number() == 1) {
    panel.axis("left", at = 1, tck = .5, outside = TRUE,
               labels = expression("r"^2))
    panel.abline(v = 1, lty = 3, lwd = 1, col = "red")
    panel.dotplot(lwd = .5, ...)
  }

  # add lower y-axis
  if (panel.number() == 2) {
    panel.axis("left", at = 2:4, outside = TRUE, tck = .5,
               labels = c("MAE", "ME", "RMSE"))
    panel.abline(v = 0, lty = 3, lwd = 1, col = "red")
    panel.dotplot(..., lwd = 0.5)
  }
}

## apply custom axes
update(plt, panel = panel.fun)

решение

Другие вопросы по тегам