У меня есть такие данные:
data <- data.frame(x=runif(500), y=runif(500), z=runif(500))
Мне нужна диаграмма рассеяния с точками, независимо / дискретно окрашенными в каждом измерении (X, Y и Z) с использованием значений RGB.
Вот что я пробовал:
Код:
library(dplyr)
library(plotly)
xyz_colors <- rgb(data$x, data$y, data$z)
plot_ly(data = data,
x = ~x, y = ~y, z = ~z,
color= xyz_colors,
type = 'scatter3d',
mode='markers') %>%
layout(scene = list(xaxis = list(title = 'X'),
yaxis = list(title = 'Y'),
zaxis = list(title = 'Z')))
Сюжет:
RColorBrewer считает, что я пытаюсь создать непрерывную шкалу из 500 промежуточных цветов:
Warning messages:
1: In RColorBrewer::brewer.pal(N, "Set2") :
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
2: In RColorBrewer::brewer.pal(N, "Set2") :
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
Какими правильными способами закрасить такие точки в R с помощью Plotly? Кроме того, как вообще можно назначить цвета точкам данных в R с помощью Plotly, индивидуально?
Чтобы уточнить, я пытаюсь раскрасить каждую точку, где цвет имеет формат "#XXYYZZ", где "XX" aзначение между 00 и FF линейно отображается на значение данных $ x от 0 до 1. То есть измерение X определяет количество красного, измерение Y определяет количество зеленого, а измерение Z определяет количество синего. При 0,0,0 точка должна быть черной, а при 1,1,1 точка должна быть белой. Причина этого заключается в том, чтобы максимально упростить визуализацию трехмерного положения точек.