如何更改格子图中单个面板上的轴
How do I change the axis on a single panel in a lattice plot
我已经尝试了一段时间来解决格子图的问题。我的面板数量不均匀,因此如果我施加非交替轴标签,其中一个面板没有 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")
}
)
但这只会产生一条错误消息:
"Error in get("lattice.status", envir = .LatticeEnv)[[prefix]][[name]] :
下标越界"
任何人都可以帮我在那个面板(Wine B)的底部找到一个轴吗?
谢谢,
马特
你必须在剪裁方面有点创意。
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)
}
}
)
我已经尝试了一段时间来解决格子图的问题。我的面板数量不均匀,因此如果我施加非交替轴标签,其中一个面板没有 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")
}
)
但这只会产生一条错误消息:
"Error in get("lattice.status", envir = .LatticeEnv)[[prefix]][[name]] : 下标越界"
任何人都可以帮我在那个面板(Wine B)的底部找到一个轴吗?
谢谢, 马特
你必须在剪裁方面有点创意。
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)
}
}
)