3

我有一个看起来像这样的动物园对象:

z <- structure(c(6, 11, 3.6, 8.4, 8.9, 0, NA, 0.5, 7, NA, 9, NA),
    .Dim = c(6L, 2L), .Dimnames = list(NULL, c("2234", "2234.1")), index = structure(c(-17746, -17745, -17744, -17743, -17742, -17741), class = "Date"),
    class = "zoo")

我尝试使用 lattice 在 2 个不同的面板中同时绘制两列:
xyplot(z)

这为两个面板提供了相同的 x 轴,但 ylim 不同。我希望他们拥有相同的 ylim,所以我尝试xyplot(z, ylim=range(z[,1]))它没有做任何事情,所以在阅读“Plot zoo Series with Lattice”之后,我trellis.focus("panel", 2,1,ylim=range(z[,1]))也尝试了但没有任何运气......

这可能是一件容易的事,但我发现 lattice 包很难使用(至少开始时)。任何人都可以帮忙吗?

谢谢!

4

2 回答 2

3

试试xyplot(z, ylim=range(z, na.rm=TRUE))

有两件事:

  1. na.rm=TRUE导致range正常工作
  2. range(z)而不是range(z[,1])让您处理所有数据的范围,而不仅仅是一列。

require(lattice)
require(zoo)
z <- zoo(cbind(a=1:4,b=11:14), Sys.Date()+(1:4)*10)
xyplot(z, ylim=range(z, na.rm=TRUE))

有用

注:R 版本 2.13.0、zoo_1.6-5、lattice_0.19-26

于 2011-06-09T16:47:37.110 回答
2

xyplot.zoo接受大多数xyplot参数,所以:

xyplot(z, scales = list(y = list(relation = "same")))

或这种变化:

xyplot(z, scales = list(y = list(relation = "same", alternating = FALSE)))
于 2011-06-10T02:33:55.300 回答