【发布时间】:2013-04-05 03:53:31
【问题描述】:
我正在使用 bwplot 在 Lattice 中制作盒须图。我想为手段加分。我已经想出了如何使用panel.points 对简单的绘图执行此操作。但是,当我使用+ 和outer=TRUE 制作多面板bwplot 时,我不知道如何在不同的面板中放置不同的点。此示例说明了我尝试的解决方案的问题,该解决方案不起作用。 (为简单起见,它将“x”放在任意点而不是平均值。)
# make some data:
df <- data.frame(var1=rnorm(20), var2=runif(20), cat=rep(c("Z"),20))
# cat isn't doing anything, but I couldn't get the mwe to work without it.
bwplot(var1 + var2 ~ cat, data=df, pch="|", coef=0, outer=TRUE,
panel=function(data, ...){
panel.bwplot(...)
panel.points(x=c(.5,-.5), pch="x", cex=2)
}
)
(outer=T 与 var1 + var2 结合使用会导致创建两个面板。请参阅下面的更简单的示例。)
我得到的是两个面板,每个面板都有一个盒须图。 “x”被放置在每个图上。在每个面板中,绘图上方 0.5 处都有一个“x”。与在第二个面板中使用 -.5 不同,该过程重新开始 - Lattice 再次抓取第一个点 .5。
如何在不同面板的绘图上显示不同的点?
谢谢。
后来补充:我现在意识到这个问题与+ 和outer=TRUE 本身无关。使用常规格子条件可以得到相同的行为:
df <- data.frame(var1=rnorm(20), cat=rep("Z",20), cat2=rep(c("M","F"), 10))
bwplot(var1 ~ cat | cat2, data=df, pch="|", coef=0, outer=TRUE,
panel=function(data, ...){
panel.bwplot(...)
panel.points(x=c(.5,-.5), pch="x", cex=2)
}
)
【问题讨论】:
-
不是有一个
which.panel函数在某处吗?如果做不到这一点,请查看?trellis.focus(不仅仅是那个功能,而是整个帮助页面。) -
没有
which.panel功能,但?trellis.focus看起来很有希望。我会进一步调查。谢谢@DWin。 -
which.panel实际上是 strip.default 中的参数名称。后者的 halp 页面提到which.packet作为正确的函数名称。