我想创建一个股票价值的python图,其中股票行情基于下拉菜单。下拉菜单基于我的熊猫数据框的列标题,其中包含每个公司的调整后收盘价。数据框data_df
包含我的数据以及下拉菜单中所需的列标题。如果我运行plot_w
而不将其定义为需要两个参数,则可以运行它。当我将dataframe, ticker
传递到定义中时,它将无法运行。我的目标是,当我更改下拉菜单中的股票时,它应该更改情节。
我当前的代码:
import matplotlib.pyplot as plt
import ipywidgets as widgets
import pandas as pd
def plot_w(dataframe,ticker):
I = data_df.columns == ticker
print(data_df.loc[:, I].head(10))
#Code fails in the line below.
df = dataframe.loc[:, I].plot(x=dataframe.index, y=dataframe[ticker], style=['-bo'], figsize=(8, 5), fontsize=11, legend='False')
plt.plot(df[ticker], label = ticker)
#plt.plot(df["AMZN"], label = "Amazon")
plt.legend(loc = "upper center", shadow = True, fontsize = "small", facecolor = "black")
plt.show()
widgets.interact(plot_w,
dataframe = widgets.fixed(data_df),
ticker = widgets.Dropdown(
options=data_df.columns,
value='ATVI',
description='Company ticker:',
disabled=False,
)
)
答案 0 :(得分:0)
我通过重置数据帧的索引并将错误发生的行更改为
来解决了该问题plt = dataframe.loc[:, ['Date',ticker]].plot(x='Date', y=ticker, style=['-bo'], figsize=(8, 5), fontsize=11, legend='False')