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

Plotly Graph Objects实现基于z数组的标记点颜色差异化设置

问题:用Plotly Graph Objects实现基于z值的散点标记颜色区分

你遇到的报错是因为go.Scatter作为2D散点图组件,并不支持z参数。要实现根据z数组的值为散点标记分配不同颜色,需要通过marker的color属性绑定z值,并配合颜色映射配置来完成。

修改后的完整代码

import numpy as np
import plotly.graph_objects as go

def plot(x,y,z):
    fig = go.Figure()    
    trace1 = go.Scatter(
        x=x, y=y,
        mode='markers',
        name='markers',
        # 核心修改:通过marker.color绑定z值,配置颜色映射
        marker=dict(
            size=14,
            color=z,  # 将z值绑定到标记颜色
            colorscale='Viridis',  # 指定颜色映射方案
            colorbar=dict(title='Z值')  # 添加颜色条说明
        )
    )
    
    fig.add_traces([trace1])
    
    tickvals = [0,np.pi/2,np.pi,np.pi*3/2,2*np.pi]
    ticktext = ["0","$\\frac{\\pi}{2}$","$\\pi$","$\\frac{3\\pi}{2}$","$2\\pi$"]
    layout = dict(
        title="demo",
        xaxis_title="X",
        yaxis_title="Y",
        title_x=0.5,   
        margin=dict(l=10,t=20,r=10,b=40),
        height=300,
        xaxis=dict(
            side='bottom',
            linecolor='black',
            tickangle=0,
            tickvals = tickvals,
            ticktext=ticktext,
            ticks='outside',
            ticklen=7,
            tickwidth=1,
            tickcolor='black',
            tickson="labels",
            title=dict(standoff=5),
            showticklabels=True,
        ),
        yaxis=dict(
            showgrid=True,
            zeroline=True,
            zerolinewidth=.5,
            zerolinecolor='black',
            showline=True,
            linecolor='black',            
            showticklabels=True,
        )
    )

    fig.update_layout(layout)
    
    # 若save_fig是自定义函数,可替换为Plotly内置的write_image
    # save_fig(fig,"/vagrant/work/demo.png")
    fig.write_image("/vagrant/work/demo.png")
    fig.show()
    return

n = 20
x = np.linspace(0.0, 2*np.pi, n)
y = np.sin(x)
z = np.random.randint(0,100,size=n)

plot(x,y,z)

关键修改说明

  • 移除了报错的z = z参数,改用marker.color=z将z数组的值与标记颜色绑定
  • 通过colorscale指定颜色映射方案,Plotly内置多种预设(如'Viridis'、'Plasma'等),也可以自定义颜色列表
  • 添加colorbar配置,显示z值与颜色的对应关系,提升图表可读性
  • 若z是分类值(而非连续数值),可以将colorscale替换为color_discrete_map来指定每个分类对应的颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:45:31