与geom_tile()结合的coord_map()非常慢

时间:2017-03-31 18:16:49

标签: r ggplot2 spatial r-raster

我正在使用ggplot2绘制一些半球场,当我尝试将它们投影到立体投影时,渲染需要很长时间。这是一个最小的例子:

lat <- seq(-87.159, -2, by = 3.7)
lon <- seq(0, 360, by = 3.75)
month <- 1:12

gdata <- expand.grid(lat = lat, lon = lon, month = month)
gdata$z <- rnorm(nrow(gdata))

g <- ggplot(gdata, aes(lon, lat)) +
    geom_tile(aes(fill = z)) +
    facet_wrap(~month, ncol = 4) 

benchplot(g)

我明白了:

       step user.self sys.self elapsed
1 construct     0.000    0.000   0.000
2     build     0.156    0.004   0.162
3    render     0.976    0.016   0.990
4      draw     0.464    0.000   0.464
5     TOTAL     1.596    0.020   1.616

如果我添加coord_map()

的投影
benchplot(g + coord_map("stereographic", orientation = c(-90,0, -120)))

它需要大约130倍的时间。

       step user.self sys.self elapsed
1 construct     0.008    0.000   0.004
2     build    39.520    0.184  40.612
3    render   147.744    0.060 147.968
4      draw    17.884    0.004  17.902
5     TOTAL   205.156    0.248 206.486

有没有办法加快速度?我觉得渲染时间增加了100多倍。

0 个答案:

没有答案