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

如何获取Plotly直方图的Y轴最大值以添加目标竖线?

Plotly直方图添加目标竖线:获取y轴最大值方案

核心思路

绘制直方图后,直接从已生成的直方图数据中提取y轴最大值,以此定义竖线的高度范围,确保竖线能覆盖直方图的最高区域。

完整代码示例

import plotly.graph_objects as go
import pandas as pd

# 替换为你的实际数据和目标值
df = pd.DataFrame({"error": [1.2, -0.8, 2.1, -1.5, 0.5, -2.3, 1.8, -0.3]})
target = 1.5

# 绘制直方图
fig = go.Figure()
fig.add_trace(go.Histogram(x=df["error"], showlegend=False))

# 提取直方图的y轴最大值(即最高分箱的频数)
hist_y_max = max(fig.data[0].y)

# 添加x=target的灰色虚线竖线
fig.add_trace(go.Scatter(
    x=[target, target],
    y=[0, hist_y_max],
    mode="lines",
    line=dict(color="gray", dash="dash"),
    showlegend=False
))

# 添加x=-target的灰色虚线竖线
fig.add_trace(go.Scatter(
    x=[-target, -target],
    y=[0, hist_y_max],
    mode="lines",
    line=dict(color="gray", dash="dash"),
    showlegend=False
))

fig.show()

适配布局调整的备选方案

如果后续手动调整了y轴范围(比如放大y轴留出空隙),可以直接读取当前布局的y轴上限,确保竖线高度匹配最新视图:

# 示例:手动扩展y轴范围
fig.update_layout(yaxis_range=[0, hist_y_max * 1.1])

# 获取当前y轴的最大值
current_y_max = fig.layout.yaxis.range[1]

# 基于当前y轴上限重新绘制竖线
fig.add_trace(go.Scatter(
    x=[target, target],
    y=[0, current_y_max],
    mode="lines",
    line=dict(color="gray", dash="dash"),
    showlegend=False
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:28:13