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

Plotly如何设置y轴最高值为0并自定义x轴与y轴交点

Plotly 自定义坐标轴交点及y轴反向显示方案

要实现x轴与y轴交于指定y值、y轴0值在顶端且向下数值递增的效果,直接通过layout层的轴属性配置即可,无需修改原始数据,核心配置逻辑如下:

  • 固定y轴数值范围,仅展示目标区间的正值,避免出现无关的负数刻度
  • 调整y轴范围顺序,实现0值在顶端、数值越靠近底部x轴越大的反向效果
  • 关闭默认在y=0位置生成的零轴线,避免顶部出现多余横线
  • 将x轴设置为自由锚定模式,指定其在y轴上的交点位置
  • 按需配置y轴百分比显示格式

代码示例(Python版本,JS版本参数完全一致)

import plotly.express as px
import pandas as pd

# 替换为实际业务数据,y值为0-1区间的小数对应百分比数值
df = pd.DataFrame({
    "分类": ["类别1", "类别2", "类别3", "类别4"],
    "数值": [0.12, 0.34, 0.27, 0.41]
})
# 按需设置y轴最大显示值,对应x轴与y轴的交点y值
y_axis_max = 0.5

fig = px.bar(df, x="分类", y="数值")
fig.update_layout(
    # y轴配置:[底部数值, 顶部数值],实现反向;关闭零轴线;设置百分比格式
    yaxis_range=[y_axis_max, 0],
    yaxis_showzeroline=False,
    yaxis_tickformat=".0%",
    # x轴配置:自由锚定模式,交点位置为y轴归一化坐标1(即底部y_axis_max位置)
    xaxis_anchor="free",
    xaxis_position=1
)
fig.show()

自定义交点位置计算方式

如果需要将x轴交点设置在任意指定y值位置,先计算目标值对应的归一化坐标即可:
目标归一化位置 = (目标交点y值 - y轴顶端数值) / (y轴底端数值 - y轴顶端数值)
将计算结果传入xaxis_position参数即可,参数取值范围为0(y轴顶端)到1(y轴底端)。

注:Plotly.js开发时,只需将上述xaxis、yaxis对应的参数写入layout配置对象,即可实现完全一致的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:18:18