Tengo un caso de uso R
/ggplot2
que parece requerir geom_raster
: una cuadrícula cartesiana regular con valores z en las ubicaciones x, y. He estado usando geom_tile
, y esperaba una mejora en el rendimiento al cambiar a geom_raster
. Pero no me parece estar viendo una ...Rendimiento relativo de geom_raster()
Aquí está un ejemplo de juguete (pero el tamaño adecuado), utilizando gráficos base
:
n <- m <- 200
x <- 1:n
y <- 1:m
f <- function(x, y) 10 * sin(x/n) * cos(y/m)
z <- outer(x, y, f)
system.time(image(z))
user system elapsed
0.998 0.007 1.023
Aquí está con ggplot2
:
obs <- expand.grid(x=x, y=y)
obs$z <- as.numeric(as.list(z))
require(ggplot2)
p <- ggplot(obs, aes(x=x, y=y, fill=z))
system.time(show(p + geom_tile()))
user system elapsed
7.328 0.891 8.187
require(ggExtra)
system.time(show(p + geom_raster()))
user system elapsed
7.000 0.637 7.799
Por lo tanto, una ganancia modesta, pero no muy lejos de lo que esperaba. ¿Lo estoy haciendo mal? ¡Muchas gracias de antemano!