Самый эффективный способ рисования тепловой карты из матрицы с OpenGL? - PullRequest
1 голос
/ 04 мая 2019

Предположим матрицу m целочисленных значений:

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

Учитывая цветовую палитру, которая отображает эти значения от 1 до 10 для некоторых цветов, как показать матрицу m в виде тепловой карты в R с графикой OpenGL, например, используя пакет rgl? (Желательно наиболее эффективным способом.)

1 Ответ

1 голос
/ 05 мая 2019

Очень подробный ответ здесь предполагает, что это может быть не то, что вы хотите; Возможно, вы захотите попробовать приведенное ниже решение в сравнении с другими решениями, сравниваемыми там. Тем не менее:

Настройка данных и цветовой карты

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() между поверхностями, чтобы очистить предыдущую поверхность ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...