我尝试在具有多个面板的格子条形图中为条形添加标签。我结束了太多的标签(每个标签都在每个面板中)。向格子条形图中的面板添加文本
这里是我的代码:
library(lattice)
data(iris)
barchart(seq(1,50) ~ Petal.Width + Petal.Length | Species, data = iris, stack = TRUE,
panel=function(x, y, ...) {
panel.barchart(x, y, ...);
ltext(x=iris$Petal.Width/2, y=y, labels=iris$Petal.Width, cex = 0.5);
ltext(x=iris$Petal.Width + iris$Petal.Length/2, y=y, labels=iris$Petal.Width, cex = 0.5);
}
)
我将如何做到这一点吗?
奖金的问题:
在它旁边的预期,我觉得我的代码是不是太有效率(特别是seq(1,50)
和Petal.Width + Petal.Length
)不起作用。有没有更好的办法?
谢谢!
的这里的基本问题是如何使用'lattice'将标签放在堆积的条形图上。这是在这里回答:http://stackoverflow.com/q/3220702/602276 – Andrie
嗯,也许我不明白,但我的问题不是“如何把标签放在堆积的条形图”,但“如何使标签匹配它们所属的面板“。 这个问题是否真的在你关联的线程中得到了回答? – speendo
是的,它确实是同样的问题。为了证明这一点,我在下面使用面板函数的简化版本提供了一个答案(但是其核心思想是相同的 - 计算每个“y”的'x'的累积和)。 HTH。 – Andrie