В 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
С уважением