【问题标题】:Reduce tick marks in xyplot in R减少R中xyplot中的刻度线
【发布时间】:2014-03-09 19:22:31
【问题描述】:

我已尝试寻找此问题的答案,但没有一个解决方案奏效。我用以下代码创建了一个情节:

library(lattice)
xyplot(Births.Registered..Number. ~ X, data=CSOStats, scales=list(
y=list(tick.number = 10)))

我已经能够更改 y 轴的刻度线。我也想减少 x 轴的刻度线数量。 x 轴上的日期格式为“1960Q1”、“1960Q2”等。我无法在保持相应刻度名称的同时减少图表上的刻度数量。理想情况下,我可以每 5 年看到一次(即每 20 次),但我无法做到这一点。这是目前图表的图片。

【问题讨论】:

  • 您应该提供一些数据。您是否尝试过仅定义 x 比例? scales=list(y=list(tick.number = 10), x=list(at=where.you.want.them, labels=your.labels))
  • 谢谢。我不知道如何使用“at”参数。使用了一个序列,现在它完美地工作了。 xyplot(Marriages.Registered..Number. ~ X, data=CSOStats, scales=list(x=list(tick.number = 20, at = seq(1, 212, 20)), y=list(tick.number = 10)))

标签: r lattice


【解决方案1】:

tick.number 不适用于characterfactor(来自?xyplot):

‘tick.number’ 一个整数,给出建议的数量 刻度之间的间隔。这被忽略了一个因素, shingle 或字符向量,因为在这些情况下有 没有自然规则可以省略一些标签。

但你可以使用atlabels,例如:

library("lattice")

## example data
df <- data.frame(x=paste0(rep(1960:1999, each=4), paste0("Q", 1:4)), y=1:160)

## calculate position and create labels
x.tick.number <- 10
at <- seq(1, nrow(df), length.out=x.tick.number)
labels <- round(seq(1960, 1999, length.out=x.tick.number))

xyplot(y ~ x, data=df, scales=list(y=list(tick.number=10), 
                                   x=list(at=at, labels=labels, rot=90)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2011-10-04
    相关资源
    最近更新 更多