2014-02-23 74 views
1

我正在使用格子包中的xyplot生成一个图。我用下面的命令:强制点阵对所有坐标轴刻度使用标签

xyplot(Y ~ X | Bench, dt, type = 'o') 

这是结果:

sample image

在Y轴上有蜱无标签(0.85)。有什么办法可以强制格子在打勾旁边打印标签(就像所有其他人一样:1.00,0.95和0.90)?

编辑:我知道一些“手动”的方式来调整一个情节,使所有的蜱有一个相应的标签。但是我所知道的方法取决于被绘制的实际数据,如果数据发生变化,可能需要进行调整。我正在寻找一个自动解决方案。像某种标志,指示xyplot不留下没有相关标签的勾号。当然,这可能只是发生这样一个标志不存在......知道这也会有帮助。

+0

使用'ylim'说法。 –

+0

即'ylim = range(Y)' –

+0

@RScriv我知道我可以用'ylim'来调整一个图形,直到所有的刻度都有标签。我正在寻找更一般的解决方案。如果有勾号,则强制格子使用标签。 – betabandido

回答

1

可以明确使用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) 
+0

感谢您的提示。但是我已经更新了我的问题,以清楚地表明我正在寻找一种自动化解决方案,而不是特别的解决方案。 – betabandido

+0

感谢您的跟进。它工作得很好:) – betabandido