Указание определенного шестнадцатеричного цвета для отдельных точек на трехмерном графике рассеяния - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть набор данных LiDAR, для которого я извлек цвета RGB-NIR из растра.У меня нет проблем при создании трехмерных графиков на графике, который я хочу сделать, или при раскрашивании графика на основе 1-го столбца значений (например, NDVI);но мне интересно раскрасить точки, основываясь на шестнадцатеричном коде RGB, который я написал в один из столбцов (взятых из растра), но я не могу найти способ записать это как цветовое пространство.Хотя я могу вызывать отдельные шестнадцатеричные коды, он рассматривает их как факторы, а не как цветовую спецификацию.Я понял, что могу: а) указать качественный цвет или б) применить цветовую шкалу.Я не могу найти способ применить цветовое пространство RGB к данным.

Есть ли способ указать столбец в data.frame (работает в R), с которым связан шестнадцатеричный или RGB-кодс каждой отдельной точкой в ​​сюжетном графике?Является ли моя единственная альтернатива для создания трехцветной (RGB) цветовой шкалы и сопоставления цветов с ней?Есть ли способ получить цвета RGB для сюжетного маркера?

stack.exa<-data.frame(X= c(470219.59,470203.74,470215.49,470218.41,470214.88),
                  Y= c(5013443.99,5013439.34,5013432.39,5013437.72,5013436.6),
                  Z= c(645.62,629.83,638.78,617.32,639.54),
                  R= c(49,88,69,68,64),
                  B= c(76,134,102,97,96),
                  G= c(69,91,78,75,79),
                  HEX=c("#314545","#585B5B","#454E4E","#444B4B","#404F4F"))
trace.test<-plot_ly(stack.exa,
             x = ~X, y = ~Y, z = ~Z,
             color=~HEX,
             marker=list(
                         size = 20,
                         line = list(color = 'rgba(0, 0, 0, 0)',
                                     width = 0)
                         )
            )

1 Ответ

0 голосов
/ 25 апреля 2018

Согласно ?plot_ly():

color (...) Чтобы избежать масштабирования, используйте I ()

Изменение вашего кода на color =~ I(HEX), кажется, работает. Мне трудно сказать, однако, так как все цвета очень похожи друг на друга (Пять оттенков серого ...)

...