vegas - ¿Cómo hacer que R renderice parcelas más rápido?
renderizar rapido sony vegas 15 (2)
Estamos utilizando R para escupir diagramas (mapas de calor) que se procesan en una aplicación brillante (página web). Actualmente nos enfrentamos a un problema con el tiempo que tarda R en renderizar un gráfico y el tiempo necesario para realizar el cálculo. Déjame mostrar lo mismo a través de un ejemplo artificial. En este caso de prueba básico, R tarda ~ 17 segundos en renderizar y guardar un archivo de mapa de calor como png (el tiempo de la computadora de datos se elimina: los grupos de filas y columnas están precomputados)
Me pregunto si hay una manera de reducir el tiempo que toma renderizar este tipo de gráfico por un factor significativo. Tal vez falte en algún otro cálculo constante que también pueda sacarse de la función de mapa de calor.
¡Gracias!
generar datos
m1 <- matrix(rnorm(500000,mean=15,sd=4),ncol=100)
m2 <- matrix(rnorm(500000,mean=30,sd=3),ncol=100)
m <- cbind(m1,m2)
dim(m)
Mapa de calor básico con todos los cálculos.
png(''test_heatmap.png'')
system.time(heatmap(m))
user system elapsed
29.327 0.637 30.526
realice la agrupación fuera de la función de mapa de calor: principalmente para probar el tiempo de representación del trazado
> system.time(hcr <- hclust(dist(m)))
user system elapsed
9.992 0.126 10.144
> system.time(hcc <- hclust(dist(t(m))))
user system elapsed
0.659 0.002 0.662
> system.time(ddr <- as.dendrogram(hcr))
user system elapsed
0.498 0.010 0.508
> system.time(ddc <- as.dendrogram(hcc))
user system elapsed
0.011 0.000 0.011
tiempo de representación de mapa de calor con dendograma de fila / col precalculado
png(''test_heatmap.png'')
> system.time(heatmap(m,Rowv=ddr,Colv=ddc))
user system elapsed
16.128 0.558 17.171
Otra cosa a considerar es:
library(lattice)
levelplot(hclust(dist(m)))
geom_raster () , del paquete ggplot2, proporciona mosaicos de alto rendimiento . Puede acelerar la visualización del mapa de calor, una vez que se haya realizado el agrupamiento.