Julia中的三维散点图

8

在Julia中使用Plots,我有一个点阵数组,它们位于两个不同的表面上。这些点混合在一起,因此进行表面绘制看起来很糟糕,因为它试图连接两个表面上的点。我认为解决这个问题的最好方法是将这些点简单地作为空间中的点绘制出来。

如何在3D中绘制点而不将它们连接成表面?


有很多种方法可以做到这一点。这个之前的SO答案有帮助吗? - rickhg12hs
3个回答

6

您可以使用Plots中的scatter函数。

只需将点的坐标作为3个数组传递给scatter函数即可。

X = [x1, x2, x3]
Y = [y1, y2, y3]
Z = [z1, z2, z3]

scatter(X, Y, Z)

2

如果需要交互式绘图,可以使用PlotlyJS:

using PlotlyJS, CSV, DataFrames
df = dataset(DataFrame, "iris")
plot(
    df,
    x=:sepal_length, y=:sepal_width, z=:petal_width, color=:species,
    type="scatter3d", mode="markers"
)

源代码:https://plotly.com/julia/3d-scatter-plots/


2
使用图表:

使用绘图:

plt3d= Plots.plot(points[1,:],points[2,:], points[3,:],
     seriestype=:scatter, markersize = 7)
display(plt3d)

在上述内容中,我假设这些点在一个3x<num_of_points>的数组中。 同时增加了标记的大小,因为3D图默认较小。最初的回答。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接