使用mplfinance自定义Axes调用make_addplot报ValueError如何解决
报错根因
当你使用mplfinance的external_axes模式,在fplt.plot()中传入了ax参数指定主图坐标轴时,所有通过make_addplot()创建的附加绘图项,都必须显式指定ax参数绑定到对应坐标轴,否则mplfinance无法确认附加内容的绘制载体,就会触发该ValueError。
修复方法
在每个fplt.make_addplot()调用中添加ax=ax1参数,和主图的坐标轴实例绑定即可。如果后续需要在同画布的其他子图上绘制附加内容,只需要创建对应的坐标轴实例,再将需要绘制到该子图的make_addplot()项的ax参数绑定为对应坐标轴实例即可。
修复后完整代码
import mplfinance as fplt import pandas as pd df5M = pd.read_csv("D:\\_users_files\\Kirill\\WORK\\fx2youcom\\df5M.csv", index_col=0, parse_dates=True) fig = fplt.figure(style='yahoo', figsize=(10.8, 6.4)) ax1 = fig.add_subplot(2, 2, 1) sma = [fplt.make_addplot(df5M['SMA20'].tail(100), color='#f1afe1', ax=ax1), fplt.make_addplot(df5M['SMA50'].tail(100), color='#ffaf6c', ax=ax1), fplt.make_addplot(df5M['SMA200'].tail(100), color='#f0dea7', ax=ax1)] fplt.plot(df5M.tail(100), type='candle', ax=ax1, style='yahoo', title="long_name", ylabel='5 Minutes', addplot=sma ) # 非Jupyter环境可替换下方为 fplt.show() fig
内容的提问来源于stack exchange,提问作者Kyrylo
相关产品推荐
相关产品推荐

