Ho un R
/ggplot2
caso d'uso che sembra chiamare per geom_raster
: una griglia cartesiana regolare con valori z in posizioni x, y. Ho utilizzato geom_tile
e mi aspettavo un miglioramento delle prestazioni passando a geom_raster
. Ma non mi sembra di vedere uno ...Prestazione relativa di geom_raster()
Ecco un esempio giocattolo (ma circa la dimensione a destra), utilizzando base
grafica:
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
Qui è 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
Quindi, un guadagno modesto, ma da nessuna parte vicino a quello che mi aspettavo. Sto sbagliando? Molte grazie in anticipo!