terra R 包中的水平图例
horizontal legend in terra R package
对于 terra
我想将图例水平放置在地图下方。
从 help
看来,这可以通过将字符传递给 legend
(例如 legend = "bottomleft"
)或通过将列表传递给 plg
以及来自 base-R 的参数来完成图例功能。但是,对我来说 none 这些工作。请参阅下面的代码示例。
谢谢!
rm(list = ls())
library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
terra::plot(r)
terra::plot(r, legend = "bottomleft")
terra::plot(r, plg = list(horiz = TRUE))
terra::plot(r, plg = list(x = 6, y = 49.5, horiz = TRUE))
生成的地图在所有情况下如下:
编辑:通过将范围传递给 plg,覆盖绘图轴限制之外的区域,图例移动到正确的位置,但 horiz = TRUE
仍然不旋转它:
e <- c(5.6, 6.6, 49.2, 49.3)
terra::plot(r, plg = list(ext = e, horizontal = TRUE), mar = rep(4, 4))
您可以使用包 raster
和 spplot
,它们让您可以选择在图下方绘制图例。您可以使用此代码:
library(raster)
library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
spplot(r, scales = list(draw = TRUE), colorkey = list(space = "bottom"))
输出:
查看 terra code in gitHub,我找到了解决方案。
您需要通过 plg
列表传递 loc
和 ext
参数:
rm(list = ls())
library(terra)
library(RColorBrewer)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
e <- c(5.5, 7.0, 49.35, 49.38)
terra::plot(r, plg = list(ext = e, loc = "bottom"))
# Change color scale, range, ticks
terra::plot(r,
col = brewer.pal(7, "BrBG"), range = c(150, 500),
plg = list(ext = l_ext, loc = "bottom", title = "myvar",
at = c(150, 200, 250, 350, 450, 500)))
对于 terra
我想将图例水平放置在地图下方。
从 help
看来,这可以通过将字符传递给 legend
(例如 legend = "bottomleft"
)或通过将列表传递给 plg
以及来自 base-R 的参数来完成图例功能。但是,对我来说 none 这些工作。请参阅下面的代码示例。
谢谢!
rm(list = ls())
library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
terra::plot(r)
terra::plot(r, legend = "bottomleft")
terra::plot(r, plg = list(horiz = TRUE))
terra::plot(r, plg = list(x = 6, y = 49.5, horiz = TRUE))
生成的地图在所有情况下如下:
编辑:通过将范围传递给 plg,覆盖绘图轴限制之外的区域,图例移动到正确的位置,但 horiz = TRUE
仍然不旋转它:
e <- c(5.6, 6.6, 49.2, 49.3)
terra::plot(r, plg = list(ext = e, horizontal = TRUE), mar = rep(4, 4))
您可以使用包 raster
和 spplot
,它们让您可以选择在图下方绘制图例。您可以使用此代码:
library(raster)
library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
spplot(r, scales = list(draw = TRUE), colorkey = list(space = "bottom"))
输出:
查看 terra code in gitHub,我找到了解决方案。
您需要通过 plg
列表传递 loc
和 ext
参数:
rm(list = ls())
library(terra)
library(RColorBrewer)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
e <- c(5.5, 7.0, 49.35, 49.38)
terra::plot(r, plg = list(ext = e, loc = "bottom"))
# Change color scale, range, ticks
terra::plot(r,
col = brewer.pal(7, "BrBG"), range = c(150, 500),
plg = list(ext = l_ext, loc = "bottom", title = "myvar",
at = c(150, 200, 250, 350, 450, 500)))