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

如何在Python的mplfinance库中为Y轴添加水平线(hlines)的数值标签

嘿,我懂你想把水平线的数值标在Y轴上的需求——这样看图表的时候不用自己对照着找数值,确实直观多了!其实mplfinance自带的hlines参数本身不会自动把这些值加到Y轴刻度里,但咱们可以借助它基于matplotlib的特性手动实现,方法很简单:

下面是调整后的代码,我给你拆解一下逻辑:

import mplfinance as mpf

# 假设你的hloc数据和clusters_centers已经准备完毕
fig, axlist = mpf.plot(hloc, 
                       hlines=dict(hlines=clusters_centers, colors=['blue'], linestyle='-.'), 
                       ylabel='Price', 
                       type='candle', 
                       style='binance',
                       returnfig=True)  # 重点:加上这个参数才能拿到绘图的轴对象

# 获取K线图对应的Y轴(默认第一个子图就是顶部的价格轴)
price_ax = axlist[0]

# 先拿到原来的Y轴刻度值,避免覆盖掉默认的价格刻度
original_ticks = price_ax.get_yticks()

# 把水平线的数值和原有刻度合并,去重后排序,保证刻度顺序不乱
combined_ticks = sorted(list(set(original_ticks) | set(clusters_centers)))

# 设置新的Y轴刻度
price_ax.set_yticks(combined_ticks)

# 可选操作:如果想让刻度标签更规整,比如保留两位小数,可以加这行
price_ax.set_yticklabels([f'{tick:.2f}' for tick in combined_ticks])

# 最后显示调整后的图表
mpf.show()

核心逻辑就是:

  • 用returnfig=True获取mplfinance绘图后的matplotlib轴对象,这样我们就能手动修改Y轴配置
  • 合并原有刻度和水平线数值,避免丢失默认的价格刻度
  • 重新设置Y轴刻度,让水平线的数值直接显示在轴上

如果你的图表还有其他子图(比如成交量面板),记得要操作对应的轴——axlist[0]永远是顶部的价格轴,也就是咱们需要修改的那个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:09:07