高速にggplotする
ここ(Accelerating ggplot2: use a canvas to speed up plots creation)にあるように、 ベースマップを作成しておくことで高速な描画が期待できる。
library(tidyverse) library(sf) nc <- read_sf(system.file("shape/nc.shp", package="sf")) nc_p <- st_sample(nc, size = 100) %>% st_sf() base_map <- ggplot(data=nc) + geom_sf() microbenchmark::microbenchmark( base_map + geom_sf(data = nc_p), ggplot(data=nc) + geom_sf() + geom_sf(data=nc_p) )
Unit: milliseconds expr min lq mean median uq max neval cld base_map + geom_sf(data = nc_p) 2.378383 2.499209 2.937826 2.576802 2.827515 24.75987 100 a ggplot(data = nc) + geom_sf() + geom_sf(data = nc_p) 4.982936 5.213071 5.761455 5.411302 6.064894 10.97817 100 b