我们使用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

最佳答案

来自ggplot2软件包的geom_raster( )提供高性能的切片。一旦执行了聚类,它可以加快热图的可视化。

关于r - 如何使R渲染图更快,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20149107/

10-12 17:09
查看更多