使用panel.text
或ltext
参数可以很清楚地如何在lattice中标记面板。但是,如果我想在lattice中为每个面板使用不同的唯一标签怎么办?让我用这个简化的Dotplot
说明我的观点:
library(Hmisc)
#example data
data <- data.frame(transport=rep(c("bicycle","bus"),each=2),
att=rep(c("behaviour control","intention"),2),
value=c(4.134,4.5,3.77,2.4), Lo=c(3.92,4.37,3.51,2.2),
Hi=c(4.34,4.62,4.02,2.61))
#labels I want to use
labels.hi=c("likely","easy")
labels.lo=c("unlikely","difficult")
#example dotplot
png("test.png",width=300, height=400)
Dotplot(transport ~ Cbind(value, Lo, Hi) | att, data, col=1,
panel = function(x, y,...) {
panel.Dotplot(x, y,...)
ltext(2.5,1.5, labels=labels.lo)
ltext(4.5,1.5, labels=labels.hi)
})
dev.off()
这段代码会生成下面的图表:
我知道我可以使用每个标签的参数单独定义每个标签,但考虑到我的“现实生活”情节(嘿),这是一个相当不切实际的解决方案,因为它有更多的面板和更多不同的唯一标签。有什么建议吗?请只使用Lattice。
packet.number()
进行索引。如果有多个条件变量,我可能会将标签存储在一个matrix(list())
或array(list())
对象中,以便通过which.packet()
进行索引。 - Josh O'Briengpar
指令也不需要太多的工作,这只是另一个例子。 - Josh O'Brienpacket.number()
,谢谢你提供这个信息。每次来到这里都能学到新东西 :) 另外,矩阵方法对我来说非常完美,因为我有很多类似的标签 - 这样更容易组织。感谢 @DWin。 - Geek On Acid