我希望用更粗的线条绘制框。在boxplot
函数中,我只需添加lwd=2
,但在格子bwplot
中,我可以拔出头发并找不到解决方案!
(盒子我的意思是上图中的蓝色东西)
要使用的示例代码:
require(lattice)
set.seed(123)
n <- 300
type <- sample(c("city", "river", "village"), n, replace = TRUE)
month <- sample(c("may", "june"), n, replace = TRUE)
x <- rnorm(n)
df <- data.frame(x, type, month)
bwplot(x ~ type|month, data = df, panel=function(...) {
panel.abline(h=0, col="green")
panel.bwplot(...)
})
答案 0 :(得分:6)
正如约翰保罗指出的那样,线宽由格子图形参数列表的box.rectangle
和box.umbrella
分量控制。 (为了将来参考,键入names(trellis.par.get())
是扫描由该列表控制的图形属性列表的快速方法。)
这是为一个或多个特定数字设置这些选项的稍微更简洁的方法:
thickBoxSettings <- list(box.rectangle=list(lwd=2), box.umbrella=list(lwd=2))
bwplot(x ~ type|month, data = df,
par.settings = thickBoxSettings,
panel = function(...) {
panel.abline(h=0, col="green")
panel.bwplot(...)
})
答案 1 :(得分:4)
您可以做的一件事是获取盒子的格子设置,然后更改它们。尝试
rect.settings<-trellis.par.get("box.rectangle") #gets all rectangle settings
rect.settings$lwd<-4 #sets width to 4, you can choose what you like
trellis.par.set("box.rectangle",rect.settings)
将这些放在你的bwplot调用之上,它应该这样做。
框矩形设置还有颜色,填充等。
编辑添加,如果您获得box.umbrella
,则可以对其进行编辑,以更改框内上下方的内容。
答案 2 :(得分:3)
需要提及格子图的另一个特征。它们实际上是对象,因此存在用于修改其列表表示的方法;
myBW <- bwplot(x ~ type|month, data = df, panel=function(...) {
panel.abline(h=0, col="green")
panel.bwplot(...)
})
newBW <- update(myBW, par.settings=list(box.rectangle=list(lwd=4) ))
plot(newBW) # need to print or plot a grid object
您还可以使用trellis.focus
并应用更多更新功能来覆盖新数据或文字。