不是这样的lattice
图形工作。事实上,如果你读过?levelplot
你会看到这个函数没有参数abline
,所以我不确定你从哪里得到这个语法。
你添加东西到lattice
通过改变图形panel
功能。有许多panel.*
用于执行各种操作的函数,例如绘制点、线、散点图平滑器等。在本例中,有一个panel.abline
我们想要使用的。所以我们定义自己的panel
功能。
这使用了第一个例子?levelplot
:
x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
levelplot(z~x*y, grid,
panel = function(...){
panel.levelplot(...)
panel.abline(h = 2.5)
panel.abline(v = 2.5)
},
cuts = 50, scales=list(log="e"), xlab="",
ylab="", main="Weird Function", sub="with log scales",
colorkey = FALSE, region = TRUE)
我们的新面板函数需要首先绘制水平图,因此我们调用它panel.levelplot
第一的。然后我们想添加一些行,所以我们添加panel.abline
为了这个目的。