使用 Plotly Scatter3d 标记太暗
Posted
技术标签:
【中文标题】使用 Plotly Scatter3d 标记太暗【英文标题】:Markers Too Dark with Plotly Scatter3d 【发布时间】:2021-11-20 15:20:09 【问题描述】:我正在绘制一些散点图并手动设置标记颜色。使用 2d 散点图 (graph_objects.Scatter) 一切都按预期工作。虽然使用 3d(graph_objects.Scatter3d),但图例是正确的,但图上的标记太暗(通常只是黑色)。以下代码
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
fig = make_subplots()
fig.update_layout(height=600, width=1200)
x , y, z = np.linspace(0, 100, 100), np.linspace(-10, 10, 100), np.linspace(5, 25, 100)
fig.add_trace(go.Scatter3d(x=x, y=y, z=z, mode='markers', marker='color': 'rgb(1.0, 0.0, 0.0)', name='Red'))
fig.add_trace(go.Scatter3d(x=x+100, y=y, z=z, mode='markers', marker='color': 'rgb(0.0, 0.0, 1.0)', name='Blue'))
fig.show()
产生两行黑色标记。
有人知道这是什么原因吗?我认为 Scatter3d 的标记 dict 可能不一样,但查看文档我认为它加上图例正确显示了颜色。
【问题讨论】:
我能够重现这个。根据similar issue on GitHub,看起来这可能是一个突出的错误?如果可能的话,我会说你只使用 0-255 整数刻度是最安全的。 确实有效。应该尝试一下,但我认为这是理解颜色,因为图例正确显示。谢谢! 【参考方案1】:根据@frodnar 的评论,使用 255 而不是 1.0 确实有效
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
x, y, z = np.linspace(0, 100, 100), np.linspace(-10, 10, 100), np.linspace(5, 25, 100)
for c in ["1.0", "255"]:
go.Figure(
[
go.Scatter3d(
x=x,
y=y,
z=z,
mode="markers",
marker="color": f"rgb(c, 0.0, 0.0)",
name="Red",
),
go.Scatter3d(
x=x + 100,
y=y,
z=z,
mode="markers",
marker="color": f"rgb(0.0, 0.0, c)",
name="Blue",
),
],
layout="title": f"color c",
).show()
【讨论】:
以上是关于使用 Plotly Scatter3d 标记太暗的主要内容,如果未能解决你的问题,请参考以下文章
如何更新第二个绘图轴 plotly Scatter3D subplots
Python随着时间的推移在Scatter3d中绘制动画标记样式或点
如何使用场景向 scatter3D Plotly 绘图添加注释?