r - 为什么 spplot 需要这么多时间来处理多个面板
问题描述
我正在使用 spplot 绘制多个 shapefile。这是构建的数据
library(raster)
library(randomcoloR)
my.shp <- getData('GADM', country = 'BRA', level = 2)
my.shp$ID<- 1:nrow(my.shp)
我的数据由一个X
10 年的变量组成,如图所示,每列是一年
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)
来绘制交互式地图,这需要几秒钟。
需要注意的两件事
- 你需要一个 Mapbox 访问令牌
- 您需要将
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"
)
推荐阅读
- c - 我可以优化返回 12 字节结构的函数的内存使用吗?
- asp.net-mvc - ASP.NET Cored C# 实体 - JSON 导入
- spring-boot - 如何在 Spring Boot 后端将 Auth Code goole 换成 Token?
- c# - 为什么不等待这种方法?
- python - 如何仅删除 csv 的一行并将更改保存在同一个 csv 中?[Python]
- python - 压缩中for循环期间的输入
- ios - UIView 添加为 AVPlayer 中的 Overlay 触摸时不会触发任何操作
- r - ROracle dbGetQuery/dbSendQuery 如何处理多个绑定参数
- python - 无法在 Python 中导入模块?
- html - 如何使用 React 从打字稿中的对象创建 HTML 元素