You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Scatter3d手动设置标记色后显示过暗甚至为黑色问题咨询

问题原因

你遇到的3D散点标记颜色异常为黑色的问题,是RGB颜色值的格式不符合Plotly规范导致的:

  • Plotly的rgb()颜色语法要求传入的三个参数为*0255范围内的整数*,你代码中使用的是01范围的浮点数属于非法格式
  • 2D散点图的渲染逻辑对非法RGB值有容错处理,会自动将01的浮点值映射到0255区间;但3D散点图使用WebGL渲染,对非法RGB值会直接识别为接近0的数值,最终渲染出黑色标记
  • 图例的渲染逻辑独立于3D画布,所以可以正常解析出你预期的颜色
解决方法

将rgb()中的浮点值替换为0~255范围的整数即可,修正后的代码如下:

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)
# 替换rgb参数为0-255整数
fig.add_trace(go.Scatter3d(x=x, y=y, z=z, mode='markers', marker={'color': 'rgb(255, 0, 0)'}, name='Red'))
fig.add_trace(go.Scatter3d(x=x+100, y=y, z=z, mode='markers', marker={'color': 'rgb(0, 0, 255)'}, name='Blue'))
fig.show()

如果你的颜色值本身就是0~1的浮点格式,可以手动乘以255后转为整数再传入rgb()参数中。

内容的提问来源于stack exchange,提问作者ryanh153

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:15:03