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

不使用pandas的Python环境中如何修改Plotly数据系列标签

Plotly 纯numpy输入下自定义折线图系列标签

wide_variable_*命名的由来

这是Plotly Express处理宽格式输入的默认命名逻辑:当你没有传入pandas DataFrame、直接给y参数传入多个数组/列表时,Plotly无法自动获取每个序列的语义名称,就会按传入顺序给每个序列生成wide_variable_0、wide_variable_1这类默认标识,前缀仅用来标记这些序列是从宽格式输入中拆分出的独立变量,没有其他特殊含义。

无pandas依赖的解决方法

两种方法都可以同时修改图例、鼠标悬停弹窗内的系列显示名,按需选择即可:

  • 方法1:调用绘图函数时直接配置名称映射
    在px.line中传入labels参数,把自动生成的默认序列名映射为你需要的自定义名称,写法最简单:

    fig = px.line(
        x=x,
        y=[arrayA, arrayB, arrayC],
        labels={
            "wide_variable_0": "A序列自定义名",
            "wide_variable_1": "B序列自定义名",
            "wide_variable_2": "C序列自定义名",
            "value": "Y轴指标名", # 可选,自定义Y轴显示文字
            "x": "X轴维度名"      # 可选,自定义X轴显示文字
        }
    )
    fig.show()
    

    配置后Plotly会自动替换所有位置的默认名称,不需要额外调整其他参数。

  • 方法2:遍历trace动态修改名称
    如果序列数量是动态变化的,不想硬编码wide_variable_*的默认key,可以在生成画布后,按数组传入顺序遍历每个序列修改属性:

    fig = px.line(x=x, y=[arrayA, arrayB, arrayC])
    
    # 按传入y的数组顺序排列自定义名称即可
    series_names = ["A序列自定义名", "B序列自定义名", "C序列自定义名"]
    for idx, trace in enumerate(fig.data):
        trace.name = series_names[idx]
        # 同步更新悬停弹窗模板,避免hover时显示旧名称
        trace.hovertemplate = f"{series_names[idx]}<br>x: %{{x}}<br>y: %{{y}}<extra></extra>"
    
    fig.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:45:35