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

如何在Plotly Python累积直方图X轴特定点添加计数文本

实现Plotly累积直方图指定位置添加计数文本

实现步骤

Plotly Express的直方图会自动计算分箱和累积计数,要在指定位置添加文本,需要先提取生成的直方图数据,再手动添加注释:

  1. 生成基础累积直方图
    先创建数据并生成直方图对象,暂不直接展示:

    import pandas as pd
    import plotly.express as px
    
    df = pd.DataFrame({'N':[1,1,1,1,2,3,3,4,5,6,7,7,7,7,7]})
    fig = px.histogram(df, x='N', cumulative=True, nbins=7)
    
  2. 提取直方图数据
    从生成的图表对象中获取分箱的x值和对应的累积计数y值:

    hist_data = fig.data[0]
    x_vals = hist_data.x
    y_vals = hist_data.y
    
  3. 筛选目标位置
    筛选出x值为3的倍数(3、6、9...)的索引:

    target_indices = [i for i, x in enumerate(x_vals) if x % 3 == 0]
    
  4. 添加文本注释
    遍历目标位置,在对应条形上方添加累积计数字本:

    for idx in target_indices:
        x_val = x_vals[idx]
        y_val = y_vals[idx]
        fig.add_annotation(
            x=x_val,
            y=y_val,
            text=str(y_val),
            showarrow=False,
            yshift=10,  # 让文本偏移到条形上方,避免遮挡
            font=dict(size=12)
        )
    
  5. 展示图表

    fig.show()
    

说明

  • 这里nbins=7刚好让每个整数N对应一个分箱,x值直接匹配原始数据的N值;如果分箱规则变化,需要根据hist_data.x的实际值调整筛选逻辑。
  • yshift参数可以调整文本与条形的距离,避免重叠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:06:39