我正在使用 lattice 包中的 xyplot 生成一个图。我使用以下命令:
xyplot(Y ~ X | Bench, dt, type = 'o')
这是结果:
在 Y 轴上有一个没有标签的刻度 (0.85)。有什么方法可以强制格子在刻度旁边打印一个标签(就像它对所有其他刻度所做的那样:1.00、0.95 和 0.90)?
编辑: 我知道一些“手动”方法可以调整绘图,使所有刻度线都有相应的标签。但我所知道的方法取决于绘制的实际数据,如果数据发生变化,它们可能需要进行调整。我正在寻找对此的自动解决方案。就像某种标志,指示 xyplot
不要在没有相关标签的情况下留下刻度。当然,它可能只是发生这样的标志不存在......知道这也会有所帮助。
最佳答案
您可以使用 scales=
参数显式指定轴刻度位置,这会跳过自动轴标签裁剪:
xyplot(..., scales=list(y=list(at=seq(.85, 1, .05)), x=list(at=...)))
编辑:给你,更自动化:
axis.overlap <- function(..., components) {
components$bottom$labels$check.overlap <- FALSE
axis.default(..., components=components)
}
然后任何时候你想包括轴重叠标签,你可以指定:
xyplot(Y ~ X | Bench, dt, axis=axis.overlap)
或者随意包装:
xyplot2 <- function(..., axis=axis.overlap) xyplot(..., axis=axis)
xyplot2(Y ~ X | Bench, dt)
关于r - 强制格子为所有轴刻度使用标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21973981/