Tôi có một trường hợp sử dụng R
/ggplot2
có vẻ như gọi cho geom_raster
: lưới Descartes thông thường có giá trị z tại vị trí x, y. Tôi đã sử dụng geom_tile
và tôi dự kiến cải thiện hiệu suất từ việc chuyển sang geom_raster
. Nhưng tôi dường như không thể nhìn thấy một ...Hiệu suất tương đối của geom_raster()
Dưới đây là một ví dụ đồ chơi (nhưng về kích thước phù hợp), sử dụng base
đồ họa:
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
Dưới đây là với 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
Vì vậy, mức tăng khiêm tốn, nhưng không ở đâu gần những gì tôi mong đợi. Tôi có làm sai không? Rất cám ơn trước!