我正在进行的项目需要使用mplfinance库编写代码,在几个图表中绘制300多个蜡烛图。我知道这只能使用外部轴方法来完成,因为它提供了更大的灵活性,并且理论上可以绘制无限数量的图表。
我目前使用的代码如下,绘制的图表如下所示:
如果您能发布详细的代码来完成此操作,我将不胜感激!
2021年2月12日更新:
根据@Daniel的建议,我修改了代码,使用
我目前使用的代码如下,绘制的图表如下所示:
import mplfinance as mpf
s = mpf.make_mpf_style(base_mpf_style='yahoo', rc={'font.size': 6})
fig = mpf.figure(figsize=(34, 13.2), style=s, tight_layout=True)
ax_p = fig.add_subplot(n_rows, n_cols, pos_price)
ax_v = fig.add_subplot(n_rows, n_cols, pos_vol, sharex=ax_p)
fig, ax_list = mpf.plot(resampled_df, type='candle', ax=ax_p, volume=ax_v, show_nontrading=False,
datetime_format='%a %d-%m-%y', xrotation=0, returnfig=True)
这是我的代码绘制的数百个图表中的6个示例图的截图:
上述代码绘制的两个图表的截图如下: 如您所见,成交量图表被绘制在蜡烛图表格下方。我很难找到将成交量移动到蜡烛图表格中的解决方法。mplfinance文档中有一个类似的帖子issue 114,解释了如何做到这一点......但是对于像我这样刚接触该库的新手来说,我发现它相当难以理解。如果您能发布详细的代码来完成此操作,我将不胜感激!
2021年2月12日更新:
根据@Daniel的建议,我修改了代码,使用
add_axes()
而不是add_subplot()
,现在在绘制多个图表时,成交量位于蜡烛图表格底部。非常好!答案已被接受。
ax_intra_day_candle = fig.add_axes([x_pos, y_pos, ax_width, ax_height])
ax_intra_day_candle.set_title(title)
ax_intra_day_volume = fig.add_axes([x_pos, y_pos - ax_vol_height, ax_width, ax_vol_height], sharex=ax_intra_day_candle)
mpf.plot(intra_day_df, type='candle', ax=ax_intra_day_candle, volume=ax_intra_day_volume, show_nontrading=False,
datetime_format='%a %m-%d', xrotation=0)
returnfig=True
将被忽略(因为mplfinance没有返回图形对象的功能,而且无论如何调用者都拥有Figure和Axes对象)。 - undefined