我如何在 Matplotlib Finance 的图表上绘图?
How do i draw on top of a chart in Matplotlib Finance?
我使用 MPL Finance 创建了一个图表,这是我的做法:
chart = mpf.plot(df, type='candle', figratio=(20,9), style="nightclouds", savefig='plottedCharts/TEST.png', volume=True)
其中 df
是我的 Pandas 数据框。我试图在图表上的一些重要点上添加方点,如下所示:
plt.scatter('2020-05-16 13:30', 9300, marker='s', c='b', s=1)
但是当我尝试这个时,图表上什么也没有出现。有什么办法可以实现吗?
是的。您调用 mpf.make_addplot()
(制作额外的绘图数据)
并使用 addplot
kwarg:
将 make_addplot 的结果传递到 mpf.plot()
ap = mpf.make_addplot(signal,type=scatter,marker='s',color='b')
mpf.plot(df, type='candle', figratio=(20,9), style="nightclouds",
savefig='plottedCharts/TEST.png', volume=True, addplot=ap)
变量signal
是一个列表、系列或数据框,其长度与df
.
将signal
设置为适当的价格值您希望方块出现的位置。 signal
的所有其他值应填充为 float('nan')
(以确保它与 df
的长度相同)。
您可以在此处的教程中看到完全按照您的要求执行操作的具体示例:https://github.com/matplotlib/mplfinance/blob/master/examples/addplot.ipynb
我使用 MPL Finance 创建了一个图表,这是我的做法:
chart = mpf.plot(df, type='candle', figratio=(20,9), style="nightclouds", savefig='plottedCharts/TEST.png', volume=True)
其中 df
是我的 Pandas 数据框。我试图在图表上的一些重要点上添加方点,如下所示:
plt.scatter('2020-05-16 13:30', 9300, marker='s', c='b', s=1)
但是当我尝试这个时,图表上什么也没有出现。有什么办法可以实现吗?
是的。您调用 mpf.make_addplot()
(制作额外的绘图数据)
并使用 addplot
kwarg:
mpf.plot()
ap = mpf.make_addplot(signal,type=scatter,marker='s',color='b')
mpf.plot(df, type='candle', figratio=(20,9), style="nightclouds",
savefig='plottedCharts/TEST.png', volume=True, addplot=ap)
变量signal
是一个列表、系列或数据框,其长度与df
.
将signal
设置为适当的价格值您希望方块出现的位置。 signal
的所有其他值应填充为 float('nan')
(以确保它与 df
的长度相同)。
您可以在此处的教程中看到完全按照您的要求执行操作的具体示例:https://github.com/matplotlib/mplfinance/blob/master/examples/addplot.ipynb