Pandas:从 DataFrame 绘图/注释

Pandas: Plotting / annotating from DataFrame

我有一个带有股票数据的无聊数据框:

date         close    MA100      buy   sell
2022-02-14   324.95   320.12     0     0
2022-02-13   324.87   320.11     1     0
2022-02-12   327.20   321.50     0     0
2022-02-11   319.61   320.71     0     1

然后我在绘制价格

import pandas as pd
import matplotlib.pyplot as plt

df = ...
df['close'].plot()
df['MA100'].plot()

plt.show()

到目前为止一切顺利... 然后,如果那天有买入(绿色)或卖出(红色),我想在图表上显示一个标记。 只是为了强调当天是否有交易。交易发生的确切盘中价格并不重要。

所以 x/y-coordinates 可能是日期和收盘价,如果在买入(卖出)列中有 1。

我不确定如何实现它。 我是否需要一个循环来遍历 buy = 1 (sell = 1) 的所有行,然后以某种方式将这些匹配项添加到绘图中(可能带有注释?)

如果有人能指出正确的方向,我将不胜感激!

您可以查询 sell/buy 和散点图的数据框:

fig, ax = plt.subplots()
df.plot(x='date', y=['close', 'MA100'], ax=ax)
df.query("buy==1").plot.scatter(x='date', y='close', c='g', ax=ax)
df.query("sell==1").plot.scatter(x='date', y='close', c='r', ax=ax)

输出: