#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