在 x 轴上显示 mplfinance 图表的最后日期

Show last date on x axis for mplfinance chart

我使用 mplfinance 库创建了一个图表。我想在图表中的 x 轴上显示最后一根蜡烛的日期。如何实现?

目前没有直接的方法可以使用 mplfinance 执行此操作(但是正在进行的改进会有所帮助;请参阅 issue 428 and issue 313

不过,通过一些工作,您可以使用以下解决方法来完成此操作:

  1. 调用时设置returnfig=Truempf.plot()
  2. 从返回的 x 轴获取刻度
  3. 自己格式化刻度(创建刻度标签)
  4. 最后多加一个勾。
  5. 重新设置刻度和刻度标签。

示例代码:

给定以下代码和绘图:

fig, axlist = mpf.plot(df, type='candle',style='yahoo',volume=True,returnfig=True)

我们可以做到以下几点:

fig, axlist = mpf.plot(df, type='candle',style='yahoo',volume=True,returnfig=True)
newxticks = []
newlabels = []
##format = '%Y-%b-%d'
format = '%b-%d'

# copy and format the existing xticks:
for xt in axlist[0].get_xticks():
    p = int(xt)
    if p >= 0 and p < len(df):
        ts = df.index[p]
        newxticks.append(p)
        newlabels.append(ts.strftime(format))

# Here we create the final tick and tick label:
newxticks.append(len(df)-1)
newlabels.append(df.index[len(df)-1].strftime(format))

# set the xticks and labels with the new ticks and labels:
axlist[0].set_xticks(newxticks)
axlist[0].set_xticklabels(newlabels)

# now display the plot:
mpf.show()

结果: