如何在 Plotly 3D 散点图中 style/format 点标记?

How to style/format point markers in Plotly 3D scatterplot?

我不确定如何在 Plotly 散点图中自定义散点图标记样式。

具体来说,我有一个列 predictions 为 0 或 1(1 表示意外值),即使我在 px.scatter_3d 中使用了 symbol 参数来指示通过改变点形状(菱形代表 1 和圆形代表 0)的意想不到的价值,差异非常微妙,我希望它更加引人注目。我正在设想类似下面的东西(不需要完全是这样),但是沿着菱形点的线的东西有不同的轮廓颜色或周围有一个额外的 shape/bubble。我该怎么做?

此外,我有一个 set 列,它可以采用两个值之一,设置 A 或设置 B。我在 px.scatter_3d 中使用了颜色参数,并使其等于 set 所以这些点是根据它来自哪个集合来着色的。当它按照我的要求执行时,我不希望颜色是蓝色和红色,而是我指定的任何两种颜色。我将如何做到这一点(假设我希望颜色改为蓝色和橙色)?非常感谢!

这是我使用的代码:

fig = px.scatter_3d(X_combined, x='x', y='y', z='z',
                    color='set', symbol='predictions', opacity=0.7)

fig.update_traces(marker=dict(size=12,
                         line=dict(width=5,
                         color='Black')),
              selector=dict(mode='markers'))

您可以使用多个 go.Scatter3d() 语句并将它们收集在一个列表中,以便或多或少完全按照您的意愿格式化每个段或极值。这可能比使用 px.scatter_3d() 要求更高一些,但它会给您更多的控制权。以下情节由以下代码片段生成:

剧情:

代码:

import plotly.graph_objects as go
import numpy as np
import pandas as pd

# sample data
t = np.linspace(0, 10, 50)
x, y, z = np.cos(t), np.sin(t), t

# plotly data
data=[go.Scatter3d(x=[x[2]], y=[y[2]], z=[z[2]],mode='markers', marker=dict(size=20), opacity=0.8),
      go.Scatter3d(x=[x[26]], y=[y[26]], z=[z[26]],mode='markers', marker=dict(size=30), opacity=0.3),
      go.Scatter3d(x=x, y=y, z=z,mode='markers')]

fig = go.Figure(data)
fig.show()

您如何识别不同的段,无论是最大值还是最小值都完全取决于您。不管怎样,希望这个方法有用!