我现在已经尝试了一段时间来解决格子图的问题。我的面板数量不均匀,因此如果我施加非交替轴标签,其中一个面板没有X轴标签。
以下代码不适用于我的特定项目,而是使用可供所有人使用的R数据集:
densityplot(~Taste|Wine,data=WineTasting, as.table=TRUE,
scales=list(alternating=FALSE),
panel=function(x,y,...){
panel.densityplot(x,plot.points=FALSE)
}
)
这会产生一个看起来像第一张图片的情节: Image 1
了解“Wine B”如何没有X轴。我希望所有面板的底部都有轴刻度标记和数字标签。因此,如果我插入panel.axis(side =“bottom”),我会收到一条错误消息和一个看起来像第二个图像的图: Image 2
我也尝试了以下代码:
densityplot(~Taste|Wine,data=WineTasting, as.table=TRUE,
scales=list(alternating=FALSE),
panel=function(x,y,...){
panel.densityplot(x,plot.points=FALSE)
},
if(isTRUE(panel.number(2))){
panel.axis(side="bottom")
}
)
但这只会产生一条错误信息:
“get中的错误(”lattice.status“,envir = .LatticeEnv)[[prefix]] [[name]]: 下标超出范围“
任何人都可以帮我在单个面板(Wine B)的底部找到一个轴吗?
谢谢, 马特
答案 0 :(得分:2)
你必须通过剪辑获得一点创意。
library(lattice)
densityplot(~ mpg | cyl, data = mtcars, as.table = TRUE,
scales = list(alternating = FALSE),
par.settings = list(clip = list(panel = "off")),
panel = function(x, y, ...) {
panel.densityplot(x, plot.points = FALSE, ...)
if (panel.number() == 2) {
panel.axis(side = "bottom", outside = TRUE)
}
}
)