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