首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使R渲染图更快

如何使R渲染图更快
EN

Stack Overflow用户
提问于 2013-11-22 15:56:15
回答 2查看 2.1K关注 0票数 16

我们正在使用R来吐出在一个闪亮的应用程序(网页)上呈现的地块(热图)。目前,我们面临的问题是R绘制一个图所需的时间,以及计算所需的时间。让我通过一个人为的例子来说明这一点。在这个基本的测试用例中,R用~17秒作为png呈现和保存一个热图文件(取出数据计算机时间:行和cols集群是预先计算的)。

我想知道是否有一个方法可以减少花费的时间,使这种情节类型的一个重要因素。也许我在其他常量计算中缺失了,它也可以从热映射函数中取出来。

谢谢!

生成数据

代码语言:javascript
复制
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)

带全计算的基本热图

代码语言:javascript
复制
png('test_heatmap.png')
system.time(heatmap(m))

user  system elapsed 
29.327   0.637  30.526 

用热图函数做聚类:主要是测试图形渲染时间

代码语言:javascript
复制
> 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 

基于预计算行/集树状图的热图绘制时间

代码语言:javascript
复制
png('test_heatmap.png')
> system.time(heatmap(m,Rowv=ddr,Colv=ddc))
   user  system elapsed 
 16.128   0.558  17.171 
EN

回答 2

Stack Overflow用户

发布于 2015-05-15 05:52:25

来自光栅()包的ggplot2提供了高性能的贴图。一旦进行了聚类,就可以加速热图可视化。

票数 2
EN

Stack Overflow用户

发布于 2014-05-10 15:52:20

另一件需要考虑的事情是:

代码语言:javascript
复制
library(lattice)
levelplot(hclust(dist(m)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20149107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档