我们正在使用R来吐出在一个闪亮的应用程序(网页)上呈现的地块(热图)。目前,我们面临的问题是R绘制一个图所需的时间,以及计算所需的时间。让我通过一个人为的例子来说明这一点。在这个基本的测试用例中,R用~17秒作为png呈现和保存一个热图文件(取出数据计算机时间:行和cols集群是预先计算的)。
我想知道是否有一个方法可以减少花费的时间,使这种情节类型的一个重要因素。也许我在其他常量计算中缺失了,它也可以从热映射函数中取出来。
谢谢!
生成数据
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 发布于 2015-05-15 05:52:25
来自光栅()包的ggplot2提供了高性能的贴图。一旦进行了聚类,就可以加速热图可视化。
发布于 2014-05-10 15:52:20
另一件需要考虑的事情是:
library(lattice)
levelplot(hclust(dist(m)))https://stackoverflow.com/questions/20149107
复制相似问题