Как добавить линии в график уровня, созданный с помощью решетки (аблайн как-то не работает)?

Я хочу нарисовать горизонтальные и вертикальные линии на моем графике уровня, соответствующие значениям x от 74 до 76 и значениям y от 28 до 32. Ниже мой R-код. Но когда я запускаю следующее, я получаю графики уровней, но без линий. Я также не получаю никакой ошибки от R. Темой по умолчанию в моей установке является что-то, что отображает значения на розовый и голубой. Я также попытался использовать функцию панели, но мне тоже не повезло.

levelplot(d_fire_count_nom ~ longitude + latitude | factor(day)+factor(year), 
          data = asia,
          subset = (month == 10),  aspect="iso", contour = FALSE, layout=c(1,1), 
          main="If a fire occured in a region (low confidence) in October during 2001-2008", 
          scales=list(x=list(at=seq(from=60,to=98, by=1)), 
                      y=list(at=seq(from=5,to=38,by=1)),cex=.7, alternating=3), 
          xlim=c(60, 98), ylim=c(5, 38),
          abline=list(h=74:76, v=28:32, col="grey"))

1 ответ

Это не так 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 для этой цели.

Другие вопросы по тегам