Cufflinks绘制OHLC图表时注释y轴位置与设置不匹配问题
问题根因
Cufflinks add_annotations 接口在OHLC/K线图表下,注释默认采用画布比例坐标作为y轴参考系(即yref='paper'),值域固定为0-1,分别对应绘图区的底部和顶部,和主图的价格y轴坐标系完全不匹配,因此传入的实际价格值会被错误映射,导致y轴位置偏移。x轴默认绑定时间轴实际坐标,因此位置显示正常。
问题复现效果:
修复方法
在每个注释配置项中显式添加yref: 'y'参数,指定注释参考主价格y轴的实际数值坐标即可,建议同时显式指定xref: 'x',避免多子图场景下x轴匹配异常。
修正后代码
qf=cf.QuantFig( df, title=f'{symbol} - {date}', name=symbol, theme='pearl', up_color='green', down_color='red', ) qf.add_annotations( [ { 'x': idx_high, 'y': df.loc[idx_high]['high'], 'text': f'High: {df.loc[idx_high]["high"]}', 'showarrow':False, 'textangle': 0, 'xref': 'x', 'yref': 'y' }, { 'x': idx_low, 'y': df.loc[idx_low]['low'], 'text': f'Low: {df.loc[idx_low]["low"]}', 'showarrow':False, 'textangle': 0, 'xref': 'x', 'yref': 'y' }, ] ) f = qf.figure() f.show()
补充:如果后续添加成交量、技术指标等副图,主价格轴的参考标识仍为
y,副图y轴参考标识依次为y2、y3,给对应子图添加注释时修改yref参数即可匹配正确坐标系。
内容的提问来源于stack exchange,提问作者Eugen
相关产品推荐
相关产品推荐

