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

如何在Plotly Express中为多组散点标记设置不同色阶?

问题描述

尝试绘制包含两组(或更多)点的3D散点图,每组点使用不同的色阶。修改Plotly Express示例代码后,所有点仍共用同一个inferno色阶,且仅显示一个颜色条。

非工作代码如下:

import numpy as np
import pandas as pd
import plotly.express as px

npoints = 100
data1 = np.random.rand(npoints,4)
columns = ['x','y','z','c']
df1 = pd.DataFrame(data1, columns=columns)
fig = px.scatter_3d(df1, x='x', y='y', z='z', color='c',
                    color_continuous_scale='inferno')
fig.update_coloraxes(colorscale="inferno")
fig.layout.coloraxis.colorbar.x = 1.1 # move 1st colorbar to make room for 2nd?

data2 = 0.5*np.random.rand(npoints,4)
df2 = pd.DataFrame(data2, columns=columns)
fig2 = px.scatter_3d(df2, x='x', y='y', z='z', color='c',
                     color_continuous_scale='viridis')
fig2.update_coloraxes(colorscale="viridis")

fig.add_traces(list(fig2.select_traces()))  # add fig2 to fig

fig.show()

实际结果:所有点使用同一inferno色阶,仅显示一个颜色条。


解决方法

核心问题是新增轨迹默认会关联到第一个coloraxis,导致共用色阶和颜色条。需为每组轨迹指定独立的颜色轴,并分别配置色阶与颜色条。

修正后的代码:

import numpy as np
import pandas as pd
import plotly.express as px

npoints = 100
data1 = np.random.rand(npoints,4)
columns = ['x','y','z','c']
df1 = pd.DataFrame(data1, columns=columns)
fig = px.scatter_3d(df1, x='x', y='y', z='z', color='c',
                    color_continuous_scale='inferno')
# 调整第一组颜色条位置
fig.update_layout(
    coloraxis_colorbar=dict(x=1.1)
)

data2 = 0.5*np.random.rand(npoints,4)
df2 = pd.DataFrame(data2, columns=columns)
fig2 = px.scatter_3d(df2, x='x', y='y', z='z', color='c',
                     color_continuous_scale='viridis')
# 为第二组轨迹指定独立颜色轴
for trace in fig2.select_traces():
    trace['marker']['coloraxis'] = 'coloraxis2'

# 将第二组轨迹加入主图
fig.add_traces(list(fig2.select_traces()))

# 配置第二组颜色轴的色阶与颜色条位置
fig.update_layout(
    coloraxis2=dict(
        colorscale='viridis',
        colorbar=dict(x=1.3)
    )
)

fig.show()

关键说明
  • 为第二组轨迹设置coloraxis='coloraxis2',使其脱离默认的第一颜色轴
  • 通过update_layout分别定义两个颜色轴的色阶、颜色条位置,避免视觉重叠
  • 最终两组点会使用各自的色阶,并显示对应的两个独立颜色条

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:44