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

如何在Plotly单曲线图表中添加双X轴(Python)

Plotly 单曲线添加双X轴(无额外曲线)解决方案

核心思路

无需新增轨迹,直接通过配置第二个X轴并绑定到现有曲线的Y轴,即可实现底部主X轴+顶部副X轴的效果,不会生成多余曲线。

修改后的完整代码

import plotly.graph_objects as go

fig = go.Figure()

# 添加原曲线轨迹,仅绑定主X轴数据
for percentile, color in zip(percentiles_m, colors_m):
    fig.add_trace(
        go.Scatter(
            y=curves_df[percentile],
            x=curves_df.index,  # 主X轴使用index数据
            name=percentile + "th",
            mode="lines+markers",
            textposition="top center",
            line=dict(color=color),
        )
    )

# 配置底部主X轴
fig.update_xaxes(
    title_text="Repetition",
    tickangle=0,
    tickfont=dict(size=11),
    dividerwidth=1,
    side="bottom",
    position=0
)

# 添加并配置顶部副X轴
fig.update_layout(
    xaxis2=dict(
        title_text="Remaining patients",
        tickangle=0,
        tickfont=dict(size=11),
        side="top",
        overlaying="x",  # 与主X轴共享Y轴空间
        position=0,
        # 绑定主副轴刻度对应关系,确保曲线位置匹配
        tickvals=curves_df.index,
        ticktext=remaining_patients
    )
)

# 配置Y轴
fig.update_yaxes(title_text=feature_selected, tickfont=dict(size=11))

fig.show()

关键说明

  • 原轨迹仅需传入一组X轴数据,之前传入双X列表的写法会导致曲线异常。
  • xaxis2的overlaying="x"参数是核心,让顶部轴与主X轴共享同一Y轴区域,不会额外生成曲线。
  • tickvals和ticktext用于将主X轴的刻度值映射为副X轴的显示文本,保证两个轴的刻度完全对应曲线位置。如果主副轴是数值映射关系(比如线性转换),可自行计算对应刻度值替换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:20:24