3D-графика в R — с использованием 4-го измерения цвета

#r #plot #rgl

#r #построение #rgl

Вопрос:

Я использую функцию plot3d для создания 3D-графика в моем R-скрипте. Я хотел бы добавить 4-е измерение, которое будет цветом. Как я могу это сделать?

В частности, предположим, что у меня есть следующий код:

 plot3d(x, y, z, col=cols, size=2, type='s')
  

как бы я заполнил cols на основе вектора значений, действующего как мое 4-е измерение.

Ответ №1:

Просто создайте цветовую карту, а затем индексируйте ее с помощью сокращенной версии вашей переменной c:

 x = rnorm(100)
y = rnorm(100)
z = rnorm(100)

c = z
c = cut(c, breaks=64)
cols = rainbow(64)[as.numeric(c)]

plot3d(x,y,z,col=cols)
  

введите описание изображения здесь

Комментарии:

1. Я не знал о rainbow . Очень приятно!

2. но как я мог бы добавить шкалу сбоку, показывающую мой диапазон цветов… как легенда для цветов

3. Да, это очень гибко и позволяет устанавливать начальные / конечные оттенки и т.д. В справке rainbow также есть несколько других встроенных цветовых карт. Удачи!

4. @CodeGuy Я считаю, что rgl по-прежнему не имеет никаких возможностей легендирования / отображения. Я всегда просто добавлял легенду к рисунку после факта. Я использую небольшую удобную функцию, которую я сделал ( colbyimaging.com/wiki/statistics/color-bars ), которое, конечно, вы можете иметь.

5. color.bar(rainbow(64), min(c), max(c), title='C', ticks=round(seq(min(c), max(c), len=11), 2)) было бы одним из способов сделать это. i.imgur.com/CGBrQ.png