我有一个动物园对象,如下所示:
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")
我尝试使用网格在两个不同的面板中同时绘制两个列:
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]))
也没有任何运气......
这可能是一件容易的事,但我发现格子包非常难以使用(至少从一开始)。有人可以帮忙吗?
谢谢!
答案 0 :(得分:3)
尝试xyplot(z, ylim=range(z, na.rm=TRUE))
。
有两件事:
na.rm=TRUE
导致range
正常工作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
答案 1 :(得分:2)
xyplot.zoo
接受大多数xyplot
个参数,所以:
xyplot(z, scales = list(y = list(relation = "same")))
或此变体:
xyplot(z, scales = list(y = list(relation = "same", alternating = FALSE)))