gpt4 book ai didi

R:shapefile 上的梯度图

转载 作者:行者123 更新时间:2023-12-04 17:01:17 32 4
gpt4 key购买 nike

我目前有一个英国的 shapefile,并绘制了英国不同地区的物种种群。到目前为止,我刚刚绘制了 3 个物种种群水平,并将它们着色为红色 = 高、橙色 = 中、绿色 = 低。但我想做的是有一个渐变图,而不是只受 3 种颜色的限制。
到目前为止,我有一个名为 Count 的表,该表将区域作为列名,然后是下面每个区域的物种计数。我的最低计数为 0,最高计数为 2500 左右,Count 中的区域与 shapefile 中的区域匹配。我有一个功能可以根据您自己输入的级别确定什么是高、中、低

    High<-colnames(Count)[which(Count>'input value here')]

然后将这些绘制到 shapefile 上,如下所示:
    plot(ukmap[(ukmap$Region %in% High),],col='red',add=T)

不幸的是,我无法真正安装任何软件包,我正在考虑使用 colorRamp,但我不确定该怎么做?

编辑:我的数据看起来像这样
      Wales   Midlands North Scotland South East South West
1 551 32 124 1 49 28
3 23 99 291 152 164 107
4 1 7 17 11 21 14
7 192 32 12 0 1 9
9 98 97 5 1 21 0

第一列只是一个代表物种的数字,目前我有一个函数可以将计数绘制到英国 shapefile 上,但基于高、中和低的边界。上面的数据没有附加到我的 shapefile 中。然后我遍历数据集的每一行(物种)并为每条线(物种)绘制一张新 map 。

最佳答案

好吧,我咬一口。我不会使用基础 R 因为 plot对我来说太难理解了,所以我们将使用 ggplot2 .

# UK shapefile found via http://www.gadm.org/download
uk.url <- "http://www.filefactory.com/file/s3dz3jt3vr/n/GBR_adm_zip"

# replace following with your working directory - no trailing slash
work.dir <- "C:/Temp/r.temp/gb_map"

# the full file path for storing file
file.loc <- paste0(work.dir, "/uk.zip")

download.file (uk.url, destfile = file.loc, mode = "wb")
unzip(file.loc, exdir = work.dir)

# open the shapefile
require(rgdal)
require(ggplot2)
uk <- readOGR(work.dir, layer = "GBR_adm2")

# use the NAME_2 field (representing counties) to create data frame
uk.map <- fortify(uk, region = "NAME_2")

# create fake count data...
uk.map$count <- round(runif(nrow(uk.map), 0, 2500), 0)

# quick visual check
ggplot(uk.map, aes(x = long, y = lat, group = group, fill = count)) +
geom_polygon(colour = "black", size = 0.5, aes(group = group)) +
theme()

这会生成下面的输出,它可能与您需要的类似。

screenshot

请注意,在这种情况下我们没有明确指定梯度 - 我们只是将其保留为 ggplot .如果您想指定这些细节,这是可能的,但涉及更多。如果您沿着这条路线走下去,您应该在 uk.map 中创建另一列使用 cut 将每个计数分配到(比如说)10 个 bin 中的一个功能。 uk.map数据框如下所示:
> str(uk.map)
'data.frame': 427339 obs. of 8 variables:
$ long : num -2.05 -2.05 -2.05 -2.05 -2.05 ...
$ lat : num 57.2 57.2 57.2 57.2 57.2 ...
$ order: int 1 2 3 4 5 6 7 8 9 10 ...
$ hole : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
$ piece: Factor w/ 234 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
$ group: Factor w/ 1136 levels "Aberdeen.1","Aberdeenshire.1",..: 1 1 1 1 1 1 1 1 1 1 ...
$ id : chr "Aberdeen" "Aberdeen" "Aberdeen" "Aberdeen" ...
$ count: num 1549 1375 433 427 1282 ...
>

关于R:shapefile 上的梯度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016612/

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