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

Plotly绘制多折线图时无法手动指定图例标签的问题咨询

问题说明

该现象不是Plotly的Bug,是多序列绘图时的字段映射规则和单序列场景不一致导致的。
单折线图传入单个y列名时,图例、坐标轴标签直接和原数据表字段匹配,labels参数内写原列名即可完成替换。
当传入y参数为列名列表绘制多折线时,Plotly会自动将宽格式数据表转换为长格式,新增variable列存储原列名(即图例文本的来源字段)、value列存储原y列的数值,此时直接在labels中映射原宽表列名无法匹配到自动转换后的字段,因此修改不生效。

单序列标签修改效果:
查看输出:标签已修改
对应单序列可生效的示例代码:

import pandas as pd
import plotly.express as px

df = pd.DataFrame(dict(
    x = [1, 2, 3, 4],
    y = [2, 3, 4, 3]
))

fig = px.line(
    df, 
    x="x", 
    y="y",
    width=800, height=600,
    labels={
        "y": "Series"
        }, 
    )

fig.show()

多序列下直接映射原列名的未生效效果:
查看输出:图例条目未修改
对应未生效的示例代码:

import pandas as pd
import plotly.express as px

df = pd.DataFrame(dict(
    x = [1, 2, 3, 4],
    y1 = [2, 3, 4, 3],
    y2 = [2, 4, 6, 8]
))

fig = px.line(
    df, 
    x="x", 
    y=["y1", "y2"],
    width=800, height=600,
    labels={
        "y1": "Series 1", 
        "y2": "Series 2"
        }, 
    )

fig.show()
修复方案

方案1:补全自动生成字段的标签映射(代码改动最小)

保留原宽表传参的写法,在labels字典中增加对自动生成的variable、value字段的声明,原列名的映射即可正常生效,参考代码如下:

import pandas as pd
import plotly.express as px

df = pd.DataFrame(dict(
    x = [1, 2, 3, 4],
    y1 = [2, 3, 4, 3],
    y2 = [2, 4, 6, 8]
))

fig = px.line(
    df, 
    x="x", 
    y=["y1", "y2"],
    width=800, height=600,
    labels={
        "variable": "序列类别", # 可选,修改图例标题
        "value": "指标值", # 可选,修改Y轴标题
        "y1": "Series 1",
        "y2": "Series 2"
    }, 
)

fig.show()

方案2:手动转换长表后绘图(逻辑更可控)

如果不希望依赖Plotly的自动格式转换,可以先用pandas将宽表转为长表,指定分组字段和数值字段后再绘图,标签映射逻辑和单序列完全一致:

import pandas as pd
import plotly.express as px

df = pd.DataFrame(dict(
    x = [1, 2, 3, 4],
    y1 = [2, 3, 4, 3],
    y2 = [2, 4, 6, 8]
))
# 手动转换为长格式
df_long = df.melt(id_vars="x", var_name="series", value_name="val")

fig = px.line(
    df_long, 
    x="x", 
    y="val",
    color="series",
    width=800, height=600,
    labels={
        "series": "序列类别",
        "val": "指标值",
        "y1": "Series 1",
        "y2": "Series 2"
    }, 
)

fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:15:47