使用OpenGL从矩阵绘制热图的最有效方法?

时间:2019-05-04 02:33:38

标签: r opengl

假设一个整数值为m的矩阵:

m <- matrix(sample(1:10, 100, replace = TRUE), nrow = 10)

给出一个将这些值从1映射到10的颜色的调色板,如何在带有OpenGL图形的R中显示矩阵m作为热图,例如使用rgl包? (最好以最有效的方式。)

1 个答案:

答案 0 :(得分: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()来清除上一个表面...