Непрозрачность переменной в трехмерном графике рассеяния
Как сделать 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)