В Scala можно ли использовать Scatter3d от Plotly?
Моя цель-отобразить точки в трехмерном пространстве / диаграмме / графике. В python, кажется, это возможно: https://plot.ly/python/3d-scatter-plots/
Но в Scala я не нашел этого объекта / класса / признака:
Веб-сайт говорит только о поверхностях: https://plot.ly/scala/
Документация Plotly не содержит
Scatter3d, а толькоScatter, который, похоже, не поддерживает 3D : https://asidatascience.github.io/scala-plotly-client/latest/api/#co.theasi.plotly.ScatterКласс
ThreeDPlotкажется невозможным для отображения точек в 3D без рисования поверхностей : https://asidatascience.github.io/scala-plotly-client/latest/api/#co.theasi.plotly.ThreeDPlot, и набор Z-координат странен (например,Iterable[Iterable[Double]]вместо чего-то более простого, напримерIterable[Double])В презентации страницы GitHub используются 3D точки, но отображаются только в 2D пространство, используя только координаты X и Y: https://github.com/ASIDataScience/scala-plotly-client
2 ответа:
К сожалению, последняя версия пока не поддерживает 3D-графики рассеяния.
Однако я разветвил проект и добавил базовую поддержку для 3D-точечных диаграмм. Вот пример, который можно запустить непосредственно из консоли sbt:
val (x,y,z) = (Vector(1.0, 3.0, 3.0),Vector(2.0, 5.0, 1.0),Vector(5.0, 7.0, -1.0)) val p = ThreeDPlot().withScatter3D(x,y,z,ScatterOptions().copy(mode = Seq(ScatterMode.Marker))); draw(p, "hello-plotly");Я также открыл запрос на вытягивание, так что фиксация будет рассмотрена и, возможно, также объединена.
Вы можете использовать matplotlib (особенно
mplot3d) Принимая во внимание, чтоmatplotlibне поддерживает изначально Scala, вам необходимо преобразовать данные scala в формат matplotlib перед отображением и / или использованием этого модуля, который является:Недостающий MatPlotLib для Scala + Spark
С уважением