我想创建一个德国地块,其中 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"
当然,不起作用,并且没有用所需的颜色填充细分。
我不太确定每个州(即德国联邦)想要什么颜色,但下面的代码可以完成这项工作。您可以根据需要使用
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