Непрозрачность переменной в трехмерном графике рассеяния

Как сделать scatter3d похожим на график плотности в 3d?

Я пытаюсь установить непрозрачность (или некоторую другую переменную) на графике plot_ly scatter3d, чтобы использовать значение на точку на графике, причем значения поступают из столбца в кадре данных. Это для того, чтобы создать своего рода трехмерный график плотности рассеяния. В этом случае столбец непрозрачности содержит случайные значения, но если это оказывается возможным, я хочу сделать точки МЕНЬШЕ непрозрачными, когда количество соседних точек велико, и непрозрачными, когда они относительно изолированы. Другой подход, чтобы сделать это похожим на график плотности при сохранении стиля scatter3d, тоже подойдет.

Мои попытки поиграть с непрозрачностью или альфа в коде plot_ly потерпели неудачу, и я не смог найти работающий пример.

Набор данных можно скачать здесь: файл

library(shiny)
library(plotly)
library(data.table)


mydf <- read.csv("myshowdf.csv")


ui <- fluidPage(
  plotlyOutput('scatter', width = 800, height = 600)  
  )

server <- function(input, output, session) {

  output$scatter <- renderPlotly({
    ppl <- plot_ly(mydf, x = ~FL.Red.Range, y = ~FL.Yellow.Range, z = ~SWS.Length, mode = 'markers',
                   color = ~sub.flow.FP1,   marker = list(size = 4, opacity =mydf$opacity),
                   colors = c('blue', 'green', 'red', 'yellow'),
                   type = 'scatter3d', source = 'scatter') %>%
      layout( autosize = F,
              margin = list(l = 40, r = 20, b = 20, t = 40, pad = 4)
      )
    ppl$elementId <- NULL
    ppl
  })
  }

shinyApp(ui = ui, server = server)

0 ответов

Другие вопросы по тегам