如何在 Plotly 3D 散点图中设置点标记的样式/格式?
Posted
技术标签:
【中文标题】如何在 Plotly 3D 散点图中设置点标记的样式/格式?【英文标题】:How to style/format point markers in Plotly 3D scatterplot? 【发布时间】:2020-02-20 06:13:09 【问题描述】:我不确定如何在 Plotly 散点图中自定义散点图标记样式。
具体来说,我有一列 predictions
是 0 或 1(1 表示意外的值),即使我在 px.scatter_3d 中使用了 symbol
参数通过不同的点形状(菱形表示1 和 0 的圆圈),差异非常微妙,我希望它更具戏剧性。我正在设想类似下面的东西(不需要完全是这样),但是沿着菱形点的线条有不同的轮廓颜色或围绕它的额外形状/气泡。我该怎么做?
此外,我有一个 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'))
【问题讨论】:
【参考方案1】:您可以使用多个go.Scatter3d()
语句并将它们收集在一个列表中,以或多或少地完全按照您的需要格式化每个段或极值。这可能比使用px.scatter_3d()
要求更高,但它会给你更多的控制权。下面的情节是由下面的sn-p产生的:
剧情:
代码:
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()
如何识别不同的段,是最大值还是最小值,完全取决于您。无论如何,我希望这种方法会有用!
【讨论】:
以上是关于如何在 Plotly 3D 散点图中设置点标记的样式/格式?的主要内容,如果未能解决你的问题,请参考以下文章
如何映射分类变量以在 R Plotly 中为 3D 散点图中的点轮廓着色?
Plotly:如何手动设置 plotly express 散点图中点的颜色?
如何使用 plotly 在散点图中显示第三个变量的第二个图例?