我们正在使用R来生成图形(热图),这些图形将在一个闪亮的应用程序(网页)上呈现。目前,我们面临的问题是R渲染图形所需的时间,不包括计算时间。让我通过一个虚构的例子来展示相同的情况。在这个基本测试案例中,R需要大约17秒的时间来渲染并保存一个热图文件为png格式(行和列聚类已经预先计算好了)。
我想知道是否有办法显著减少渲染此类型图形所需的时间。也许我错过了一些其他常数计算,可以从热图函数中去除。
谢谢!
生成数据
使用预计算的行/列树状图的热力图渲染时间
我想知道是否有办法显著减少渲染此类型图形所需的时间。也许我错过了一些其他常数计算,可以从热图函数中去除。
谢谢!
生成数据
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)
基本热力图与所有计算
png('test_heatmap.png')
system.time(heatmap(m))
user system elapsed
29.327 0.637 30.526
在热图函数之外进行聚类:主要是为了测试绘图渲染时间。
> 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
使用预计算的行/列树状图的热力图渲染时间
png('test_heatmap.png')
> system.time(heatmap(m,Rowv=ddr,Colv=ddc))
user system elapsed
16.128 0.558 17.171
heatmap
中设置useRaster=TRUE
。该参数的文档已在?image
中列出。 - Roland