Метод update
графиков trellis
позволяет изменять график lattice
после начального вызова. Но поведение update
больше похоже на замену, чем на append. Это отличается от идиомы ggplot2
, где каждый новый слой является аддитивным к тому, что уже существует. Возможно ли получить это аддитивное поведение с помощью lattice
?
Пример:
LL <- barchart(yield ~ variety | site, data = barley,
groups = year, stack = TRUE,
between=list(y=0.5),
scales = list(x = list(rot = 90)))
print(LL)
Теперь я хочу добавить panel.text
к существующему сюжету. Использование update
следующим образом не работает:
update(LL, panel=function(...){
args <- list(...); panel.text(args$x, args$y+2, round(args$y, 0))
})
Я знаю, что я могу использовать update
, указав все слои в функции панели:
update(LL, panel=function(...){
args <- list(...)
panel.barchart(...)
panel.text(args$x, args$y+2, round(args$y, 0))
})
Это будет работать, но требует, чтобы я знал, что уже находится в графике lattice
, или что я реорганизую свой код довольно существенно.
Вопрос: Есть ли способ добавить к существующей панели в update.trellis
?