gpt4 book ai didi

r - 为什么 spplot 为多个面板花费这么多时间

转载 作者:行者123 更新时间:2023-12-01 13:16:35 28 4
gpt4 key购买 nike

我正在使用 spplot 绘制多个 shapefile。这是构建它的数据

library(raster)
library(randomcoloR)

my.shp <- getData('GADM', country = 'BRA', level = 2)
my.shp$ID<- 1:nrow(my.shp)

我的数据包含一个 10 年的变量 X,如图所示,其中每一列都是一年

df <- matrix(sample(100:5000, 55040, replace = T), nrow = 5504, ncol = 10)
df <- data.frame(ID = 1:nrow(my.shp), df)

my.dat <- merge(my.shp, df, by = "ID")

variable.names <- paste0("X",1:10)

spplot(my.dat, rev(variable.names), col = NA, at = seq(from = 100, to = 5000, by = 500),
col.regions = distinctColorPalette(length(seq(from = 100, to = 5000, by = 500))),
main = list(label = "TEST"))

我的问题是绘制此图需要很长时间(大约一个小时),并且想知道代码本身是否存在固有错误,导致绘制时间过长。我的笔记本电脑有 32 GB RAM。

谢谢

最佳答案

我没有将此情节与您的 spplot 进行比较,因为我不想花一个小时等待它。

相反,我建议使用 library(mapdeck) 绘制交互式 map ,这需要几秒钟的时间。

注意两点

  1. 您需要一个 Mapbox 访问 token
  2. 您需要将sp 对象转换为sf
library(raster)

my.shp <- getData('GADM', country = 'BRA', level = 2)
my.shp$ID <- 1:nrow(my.shp)

df <- matrix(sample(100:5000, 55040, replace = T), nrow = 5504, ncol = 10)
df <- data.frame(ID = 1:nrow(my.shp), df)

my.dat <- merge(my.shp, df, by = "ID")


library(sf)
sf <- sf::st_as_sf( my.dat )

library(mapdeck)

set_token( "YOUR_MAPBOX_TOKEN" )

mapdeck() %>%
add_sf(
data = sf
, fill_colour = "GID_2"
)

enter image description here

关于r - 为什么 spplot 为多个面板花费这么多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54281241/

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