Это не так, как 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
.