如何在MACD直方图柱状图上绘制cummax?代码报错求助
问题解决:MACD直方图叠加cummax曲线报错修复
错误原因
plt.axhline()是用来绘制单条固定y值的水平直线的函数,你传入的btc_1h["hist_1h_cumax"][-204:]是一个Pandas Series(一组随时间变化的数值序列),不是单个数值,函数无法判断要使用序列中的哪个值生成水平线,因此抛出"The truth value of a Series is ambiguous"错误。
正确实现代码
要在柱状图上叠加随时间变化的cummax曲线,应该使用Pandas的plot()方法在同一个轴对象上绘制,而非axhline:
import matplotlib.pyplot as plt # 绘制MACD直方图,获取绘图轴对象 ax = btc_1h["hist_1h"][-204:].plot(kind='bar', figsize=(10, 6)) # 在同一个轴上绘制cummax曲线 btc_1h["hist_1h_cumax"][-204:].plot( ax=ax, ls="dotted", color='darkorange', label='Hist Cummax' ) # 可选:添加图例、调整样式 ax.legend() plt.title('MACD Histogram with Cummax Curve') plt.show()
关键说明
- 第一步绘制柱状图时,务必保留返回的
ax轴对象,后续曲线绘制绑定到这个轴上才能实现同图叠加 plot()方法会自动匹配Series的索引(时间轴)和数值,生成连续的趋势曲线,这正是你需要的cummax效果- 可通过
color、ls(线型)、label等参数自定义曲线样式,提升可读性
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

