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

如何使用fig.update_layout()修改Plotly中legend2的布局?

如何通过fig.update_layout()修改Plotly图表中legend2的布局

核心逻辑

Plotly里,默认图例用legend_前缀的参数配置,自定义的额外图例(比如示例中的legend2)对应使用legend2_前缀的参数——所有适用于默认图例的布局配置项,都能通过替换前缀来作用于legend2。

常用配置示例

基于你的代码,以下是几种常见的legend2布局修改方式:

1. 修改字体样式(你的示例已用到)

通过legend2_font设置字体大小、颜色、字体族等属性:

import plotly.express as px
import pandas as pd

numbers = pd.DataFrame([[1,2,3,4], [2,3,4,5], [5,7,8,8]])
asdf = px.line(numbers)
asdf = asdf.add_scatter(
    x=[4,3],
    y=[1,2],
    legend="legend2"
)
asdf = asdf.update_layout(
    legend_font=dict(size=20),
    # 配置legend2的字体:大小20、红色、Arial字体、加粗
    legend2_font=dict(size=20, color="red", family="Arial", weight="bold"),
)
asdf.show()

2. 调整图例位置与对齐

用legend2_x/legend2_y设置图例的相对坐标(范围0-1,对应图表的相对位置),legend2_xanchor/legend2_yanchor设置锚点,还能通过legend2_margin调整图例与边缘的间距:

asdf = asdf.update_layout(
    # 将legend2固定在图表右上角,锚点为右上角
    legend2_x=1,
    legend2_y=1,
    legend2_xanchor="right",
    legend2_yanchor="top",
    # 设置图例与图表边缘的间距
    legend2_margin=dict(l=10, r=10, t=10, b=10)
)

3. 修改图例背景与边框

配置legend2_bgcolor(背景色)、legend2_bordercolor(边框颜色)、legend2_borderwidth(边框宽度):

asdf = asdf.update_layout(
    legend2_bgcolor="rgba(255,255,255,0.8)",  # 半透明白色背景
    legend2_bordercolor="#333",
    legend2_borderwidth=2,
)

4. 调整图例项布局

设置图例项的排列方向、单条宽度、项间距:

asdf = asdf.update_layout(
    legend2_orientation="h",  # 横向排列,默认是"v"纵向
    legend2_itemwidth=40,  # 单个图例项的宽度
    legend2_itemgap=15,  # 图例项之间的间距
)

注意事项

  • 所有针对默认图例legend的配置参数,都可通过替换前缀为legend2应用到自定义图例上。
  • 必须确保添加trace时,通过legend="legend2"指定该系列归属的图例,否则布局配置不会生效。

内容的提问来源于stack exchange,提问作者Václav Bočan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:52:43