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)
输出:
我有一个带有股票数据的无聊数据框:
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)
输出: