我正试图在折线图上突出显示一条线,该线具有一个股价线,然后是一个位于股价线上方和下方的区域。
每当股票价格超出区间时,我有一栏的值为“ 1”,当股票价格介于两行之间时,我的栏为Nan。
我要突出显示值为“ 1”或股票价格超出区间的区域。这会发生多次,并且我找不到正确创建多个vspan的方法。
我正在使用熊猫。日期是x轴并已建立索引。有什么帮助吗?
我一直在广泛地研究一天,但看不到有可能。我正在努力弄清楚如何为此使用matplotlib。
在下面的代码中,我试图将“ OPEN”(如果价格超出某个区间,则为1的列)与“ AAPL.O”进行比较,这是收盘价的ric变量
def add_SMA_bands(data,ric):
df = pd.DataFrame(data[ric])
SMAname = "SMA_{}".format(ric)
SMAstd = "SMAstd_{}".format(ric)
SMAUpper = "UpperBand_{}".format(ric)
SMALower = "LowerBand_{}".format(ric)
df[SMAname] = df["{}".format(ric)].rolling(SMA).mean()
df[SMAUpper] = df[SMAname] + (df["{}".format(ric)].rolling(SMA).std())*2
df[SMALower] = df[SMAname] - (df["{}".format(ric)].rolling(SMA).std())*2
return df
dfs={}
for ric in rics:
df = add_SMA_bands(data,ric)
df.dropna(inplace=True)
dfs[ric]=df
for ric in rics:
dfs[ric]["OVER"] = np.where(dfs[ric][ric]<dfs[ric]["LowerBand_{}".format(ric)],1, (np.where(dfs[ric][ric]>dfs[ric]["UpperBand_{}".format(ric)],1,0)))
dfs[ric]["OVER"][dfs[ric]["OVER"]==0]=np.nan