update
trellis
的方法plots 允许修改 lattice
在初始调用后绘制。但是update
行为更像是替换而不是追加。这不同于 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
中的现有面板中? ?
最佳答案
见 layer
来自 latticeExtra
包裹。
library(lattice)
library(latticeExtra)
LL <- barchart(yield ~ variety | site, data = barley,
groups = year, stack = TRUE,
between=list(y=0.5),
scales = list(x = list(rot = 90)))
LL + layer(panel.text(x, y, round(y, 0), data=barley))
关于r - 是否可以更新 R 中的晶格面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649737/