While plotting a raster image, for example:
library(raster)
r <- raster(nrow = 3, ncol = 3)
values(r) <- 1:9
plot(r, col = terrain.colors(255))
How can I get the legend being in ascending order, ie from 1 (top) to 9 (bottom)?
I thought of the legend.args
, but couldn't find the right arguments.
I tried a bit and I think I've found a solution myself, even though it is not the most elegant way.
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)
Anyway, I'd appreciate other ideas!
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.