Обратная легенда в растре

При построении растрового изображения, например:

library(raster)

r <- raster(nrow = 3, ncol = 3)
values(r) <- 1:9

plot(r, col = terrain.colors(255))

Как получить легенду в порядке возрастания, то есть от 1 (вверху) до 9 (внизу)?

Я думал о legend.args, но не смог найти правильных аргументов.

1 ответ

Решение

Я немного попробовал, и я думаю, что нашел решение сам, хотя это не самый элегантный способ.

library(raster)

r <- raster(nrow = 3, ncol = 3)
values(r) <- 1:9

par(mar = c(3, 3, 4, 3))
plot(r, col = terrain.colors(255),legend = FALSE, xlim = c(-200,200),
    ylim = c(-200,200))

vz = matrix(1:100, nrow = 1)
vx = c(185, 195)
vy = seq(-10, 10, length.out = 100)

par(new = TRUE, mar = c(3, 3, 4, 3))
plot(1, xlab = "", ylab = "", axes = FALSE, type = "n",
    xlim = c(-200, 180), ylim = c(-20, 20))
image(vx, vy, vz, col = rev(terrain.colors(255)), axes = FALSE, 
    xlab = "", ylab = "", add = TRUE)
polygon(c(185, 195, 195, 185), c(-10, -10, 10, 10))
axis(4, at = seq(-10, 10, length.out = 9), labels = 9:1, las = 1)

Во всяком случае, я был бы признателен за другие идеи!

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