【问题标题】:Markers Too Dark with Plotly Scatter3d使用 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 整数刻度是最安全的。
  • 确实有效。应该尝试一下,但我认为这是理解颜色,因为图例正确显示。谢谢!

标签: python python-3.x plotly plotly-python


【解决方案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()

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2020-02-25
    • 2022-09-25
    • 2020-01-19
    • 2021-06-27
    • 2022-01-20
    相关资源
    最近更新 更多