在 x 轴上显示 mplfinance 图表的最后日期
Show last date on x axis for mplfinance chart
我使用 mplfinance 库创建了一个图表。我想在图表中的 x 轴上显示最后一根蜡烛的日期。如何实现?
目前没有直接的方法可以使用 mplfinance 执行此操作(但是正在进行的改进会有所帮助;请参阅 issue 428 and issue 313。
不过,通过一些工作,您可以使用以下解决方法来完成此操作:
- 调用时设置
returnfig=True
mpf.plot()
- 从返回的 x 轴获取刻度
- 自己格式化刻度(创建刻度标签)
- 最后多加一个勾。
- 重新设置刻度和刻度标签。
示例代码:
给定以下代码和绘图:
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()
结果:
我使用 mplfinance 库创建了一个图表。我想在图表中的 x 轴上显示最后一根蜡烛的日期。如何实现?
目前没有直接的方法可以使用 mplfinance 执行此操作(但是正在进行的改进会有所帮助;请参阅 issue 428 and issue 313。
不过,通过一些工作,您可以使用以下解决方法来完成此操作:
- 调用时设置
returnfig=True
mpf.plot()
- 从返回的 x 轴获取刻度
- 自己格式化刻度(创建刻度标签)
- 最后多加一个勾。
- 重新设置刻度和刻度标签。
示例代码:
给定以下代码和绘图:
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()
结果: