如何在Plotly 3D散点图中设置/格式化数据点标记?

8
我不确定如何在Plotly散点图中自定义散点标记样式。
具体来说,我有一个名为 predictions 的列,它的值为0或1(1表示意外值),即使我在px.scatter_3d中使用了 symbol 参数来通过不同的点形状(1代表菱形,0代表圆形)来指示意外值,但差异非常微小,我希望它更加明显。我想象中的效果类似于以下内容(不需要完全相同),但是针对菱形点有不同的轮廓颜色或额外的形状/气泡。我该如何做到这一点?
此外,我有一个set列,它可以采用两个值之一,即集合A或集合B。我在px.scatter_3d中使用了颜色参数,并将其设置为set,以便根据其来自哪个集合着色。虽然它正在按照我的要求执行,但我不想让颜色变成蓝色和红色,而是任何我指定的两种颜色。我该怎么做呢?(比方说我想让颜色变成蓝色和橙色)。非常感谢!

enter image description here

这是我使用的代码:
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'))
1个回答

6
您可以使用多个go.Scatter3d()语句并将它们收集到一个列表中,以更加精确地格式化每个段或极值。这可能比使用px.scatter_3d()要求更高,但会给您更多的控制力。以下绘图通过下面的代码片段生成:

绘图:

enter image description here

代码:

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()

你可以按照自己的意愿来确定不同的段落,无论是最大值还是最小值。无论如何,我希望这种方法对你有所帮助!


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