我打算用牵引子图绘制数据图。 在第一个子图中,它包括所有股票价格,移动平均线(窗口= 5),移动平均线(窗口= 8)和移动平均线(窗口= 13)
在第二个子图中,它只包括RSI。
我最初获得了一个严重的数据,即股票价格(使用日期作为指数) 然后,我定义了一个名为ema的函数来创建一个严重的移动平均数据。
之后我还创建了一个名为rsi的函数来创建一个重要的数据,即rsi。
然后我尝试定义以下名为graph_with_indicator的函数。 在此功能中,我首先将所有电子邮件和股票价格作为数据框加入 然后我创建了rsi严重。
接下来,我使用add_subplot(211)绘制第一个数据帧。 之后,我使用add_subplot(212)来绘制rsi。
实际上它是成功的,不包括传奇。 它只能生成rsi图例,但不能生成第一个图形。
有人可以帮我吗?
是因为我的第一张图是一个数据帧,但第二张图只是一个严肃的,因此,我可以制作第二张图的传奇吗?
我从中得到了另一个问题,我是否可以将所有数据加入到一个数据帧中,然后单独制作子图。例如,我得到了一个五列数据帧,然后将前两列生成到第一个子图中,将最后两列生成到第二个子图中?
这是我的代码:
def graph_with_indicator(stock):
#5,8,13
df = pd.DataFrame(stock)
name = str(df.columns[0])
windows = [5,8,13]
for window in windows:
df_tmp = ema(stock,window)
df = df.join(df_tmp)
stock_rsi = rsi(stock,14)
fig = plt.figure()
fig.suptitle(name, fontsize=20)
ax1 = fig.add_subplot(211)
ax1.xaxis.set_visible(False)
ax2 = fig.add_subplot(212)
ax1.plot(df)
ax2.plot(stock_rsi)
ax1.legend(loc='upper left')
ax2.legend(loc='upper left')
plt.subplots_adjust(left= 0.1, bottom= 0.1, right= 0.98, top= 0.9, wspace= 0, hspace= 0.1 )
plt.show()
答案 0 :(得分:0)
要让传说发挥作用,请更改这两行
ax1.plot(df)
ax2.plot(stock_rsi)
到这些:
ax1.plot(df, label="df")
ax2.plot(stock_rsi, label="stock_rsi")
之所以如此,是因为Matplotlib的艺术家需要标签来绘制传说。