使用OpenGL从矩阵绘制热图的最有效方法?
Posted
技术标签:
【中文标题】使用OpenGL从矩阵绘制热图的最有效方法?【英文标题】:Most efficient way of drawing a heatmap from matrix with OpenGL? 【发布时间】:2019-05-04 02:33:38 【问题描述】:假设一个整数值矩阵m
:
m <- matrix(sample(1:10, 100, replace = TRUE), nrow = 10)
给定一个将这些值从 1 到 10 映射到某些颜色的调色板,如何将矩阵 m
显示为带有 OpenGL 图形的 R 中的热图,例如使用rgl
包? (最好以最有效的方式。)
【问题讨论】:
【参考方案1】:非常彻底的答案here 表明这可能不是您想要的;您可能想针对那里的其他基准解决方案尝试下面的解决方案。尽管如此:
设置数据和颜色图
set.seed(101)
library(viridisLite)
vv <- viridis(10)
m <- matrix(sample(1:10, 100, replace = TRUE), nrow = 10)
画图:
library(rgl)
view3d(theta=0, phi=0) ## head-on view
par3d(zoom=0.7) ## (almost) fill window
surface3d(x = 1:10, y = 1:10, z = matrix(0, 10,10),
color = vv[m],
smooth=FALSE, lit=FALSE ## turn off smoothing/lights
)
您可能需要在表面之间使用pop3d()
来清除之前的表面...
【讨论】:
以上是关于使用OpenGL从矩阵绘制热图的最有效方法?的主要内容,如果未能解决你的问题,请参考以下文章