强制晶格为所有轴刻度使用标签

时间:2014-02-23 20:20:29

标签: r lattice axis-labels

我正在使用格子包中的xyplot生成一个图。我使用以下命令:

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

这就是结果:

sample image

在Y轴上有一个没有标签的刻度线(0.85)。有没有办法强制格子在刻度线旁打印一个标签(就像它对所有其他标签一样:?,0.95和0.90)?

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

2 个答案:

答案 0 :(得分:2)

您可以使用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)

答案 1 :(得分:1)

away_fixtures = Fixture.objects.filter(Q(away=home) | Q(home=away)).order_by('-date') tips = tips.filter(prediction__fixture__in=away_fixtures) 应该可以解决问题。

有关交替的其他可能值,请参见https://www.rdocumentation.org/packages/lattice/versions/0.20-41/topics/B_00_xyplot