用多种颜色填充 Chloropeth 地图的细分

问题描述 投票:0回答:1

我想创建一个德国地块,其中 16 个 Bundesländer(分区)的每个分区的颜色都不同,具体取决于是否满足一些标准。这个想法是,您可以立即看到哪个细分满足哪个标准。

每个标准代表不同的颜色,这些是

library(RColorBrewer)
Colors <- brewer.pal(5, "Spectral") 
Colors
[1] "#D7191C" "#FDAE61" "#FFFFBF" "#ABDDA4" "#2B83BA"

现在,我有一个 16 种颜色的列表,其中包含每个联邦州的颜色,具体取决于它们满足的标准。例如:

Berlin
[1] "#D7191C" "#FDAE61" "#FFFFBF" "#ABDDA4" 
Bavaria
[1] "#D7191C" "#FDAE61"
Hamburg
[1] "#ABDDA4"

如您所见,它们的长度都不同。

现在,我想知道如何将这些多种颜色信息传递到我的叶绿素图?我已从 GADM 下载了德国的 Geopackage。

下面给出了地图的平面图,其中只能看到联邦州的边界(附后)

library(sf)
library(cartography)
plot(st_geometry(Germany), col = NA, border = "white", bg = "#aadaff")

将我的颜色列表传递为

"col = Colors"

当然,不起作用,并且没有用所需的颜色填充细分。

r plot r-sf geopackage
1个回答
0
投票

我不太确定每个州(即德国联邦)想要什么颜色,但下面的代码可以完成这项工作。您可以根据需要使用

Colors
变量。

library(sf)
library(sp)
library(raster)
library(rgdal)

Germany <- getData(country = "Germany", level = 1) 

Colors <- c("#D7191C", "#FDAE61", "#FFFFBF", "#ABDDA4",
            "#D7191C", "#FDAE61", "#ABDDA4", "#D7191C", 
            "#FDAE61", "#FFFFBF", "#ABDDA4", "#2B83BA",
            "#D7191C", "#FDAE61", "#ABDDA4", "#D7191C")

plot(Germany, 
     col = Colors[as.numeric(as.factor(Germany$NAME_1))], 
     border = "white", bg = "#aadaff")

创建于 2024-03-24,使用 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.