这里的根本问题是如何向堆叠条形图添加标签lattice
。答案提供在这个问题,但由于链接的答案没有多个面板,我在此处使用基本 R 重新创建了一个更简单的答案:
您必须按如下方式修改面板功能:
- 计算每个 y 值的 x 值的累积和
- 这是一个经典的拆分、应用、组合问题。您可以使用
plyr
为此(如链接的答案中所示),或者,正如我所说明的,split
and do.call
:
xx <- do.call(c, unname(lapply(split(x, y), function(t)cumsum(t)-t/2)))
代码:
barchart( 1:10 ~ Petal.Width + Petal.Length | Species,
data = iris[c(1:10, 51:60, 101:110), ],
stack = TRUE,
panel=function(x, y, ...) {
panel.barchart(x, y, ...)
xx <- do.call(c, unname(lapply(split(x, y), function(t)cumsum(t)-t/2)))
ltext(xx, y=y, labels=x)
}
)