gpt4 book ai didi

重组 sf multi-plot 并添加图例

转载 作者:行者123 更新时间:2023-12-05 01:41:54 27 4
gpt4 key购买 nike

我正在尝试使用 sf::plot 并排绘制两张 map ,但我无法让它工作。有两个问题,第一个是情节是相互重叠而不是并排的,第二个是我失去了传说。

这里有一个例子和更多的解释。

library(sf) 
library(dplyr)

# preparing the shapefile
nc <- st_read(system.file("gpkg/nc.gpkg", package="sf"), quiet = TRUE) %>%
select(AREA, PERIMETER) %>%
mutate(AREA = as.factor(AREA<median(AREA)))

如果我独立绘制每个字段:

plot(nc[,1])

enter image description here

plot(nc[,2])

enter image description here

两张图片都不错,都有图例和所有内容,但我希望它们都在同一个面板上。 sf::plot 提供此内置功能,如 https://r-spatial.github.io/sf/articles/sf5.html#geometry-with-attributes-sf 中所述。 :

plot(nc)

enter image description here

我失去了图例,它们彼此重叠而不是并排。在 ?plot 中,您可以阅读:

For more control over individual maps, set parameter mfrow with par prior to plotting, and plot single maps one by one.

但是当我这样做时,它不起作用:

par(mfrow=c(1,2))
plot(nc[,1])
plot(nc[,2])
par(mfrow=c(1,1))

知道如何使用 sf 并排绘制 2 张 map 吗?

最佳答案

最后还是文档的问题。为了能够将 parsf::plot 一起使用,您需要执行以下任一操作:

par(mfrow=c(1,2))
plot(st_geometry(nc[,1]))
plot(st_geometry(nc[,2]))
par(mfrow=c(1,1))

par(mfrow=c(1,2))
plot(nc[,1], key.pos = NULL, reset = FALSE)
plot(nc[,2], key.pos = NULL, reset = FALSE)
par(mfrow=c(1,1))

但是,在第一种情况下,您会丢失颜色,在这两种情况下,您都会丢失图例。您必须自己手动管理它。

参见:https://github.com/r-spatial/sf/issues/877

关于重组 sf multi-plot 并添加图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52975447/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com