如何在Plotly散点图中设置点标记的样式/格式?

时间:2019-10-23 23:45:05

标签: python plotly markers plotly-python scatterplot3d

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

具体地说,我有一个列predictions为0或1(1代表意外值),即使我使用px.scatter_3d中的symbol参数来通过变化点指示意外值形状(菱形为1,圆为0),区别非常细微,我希望它更加生动。我正在设想下面类似的内容(不一定就是这个样子),但是沿着菱形点的线的某些东西具有不同的轮廓颜色或周围的其他形状/气泡。我该怎么办?

此外,我还有一个set列,它可以采用两个值之一(集合A或集合B)。我在px.scatter_3d内使用了color参数,并将其设为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 个答案:

答案 0 :(得分:2)

您可以使用多个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()

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