Python 在matplotlib中打印变量数据
我下面的代码允许用户根据部门/子行业/等查找股票回报Python 在matplotlib中打印变量数据,python,pandas,matplotlib,Python,Pandas,Matplotlib,我下面的代码允许用户根据部门/子行业/等查找股票回报 sector='XLF' subindustry='Insurance Brokers' tickers = [''] benchmark = ['^OEX'] stocks = tickers + benchmark + sector + subindustry 这将编译成df,其中计算股票回报: stock_return = dataFrame.pct_change() 我想要的是一个plt.plot,它只显示输入数据的行。e、
sector='XLF'
subindustry='Insurance Brokers'
tickers = ['']
benchmark = ['^OEX']
stocks = tickers + benchmark + sector + subindustry
这将编译成df,其中计算股票回报:
stock_return = dataFrame.pct_change()
我想要的是一个plt.plot,它只显示输入数据的行。e、 g.如果有人只输入扇区“XLF”和基准-我只想要这两个。到目前为止,如果我这样做,我会得到一个错误,说KeyError:“[‘平均’‘行业’‘子行业’]不在索引中”
我的预期输出是仅绘制实际提供数据的列,而忽略其他列(对于其他场景,反之亦然)。谢谢我找到了一种便宜的方法,那就是对每一条if行执行“else:oversex_move['Average']==0”。。。想知道是否有人有其他的方法?你能发布一张它现在看起来如何的图片吗?yahoo fin API正在困扰着我-但基本上只是一个带有基准/扇区(我输入值的部分)的图,空的部分表示为x=0和y=0上的一条线。理想情况下,如果你的方法行得通,没有人能带来更好的答案,我会说发布/接受你的答案
stocks_sorted = {'T': tickers,
'B': benchmark,
'S': sector,
'Sub': subindustry}
def average_data(stocks):
for stock in stocks:
if len(stocks_sorted['T']) >= 2:
stock_return['Average'] = stock_return[tickers].apply(np.mean,axis=1)
if len(stocks_sorted['Sub']) >=2:
stock_return['Sub-industry'] = stock_return[subindustry].apply(np.mean,axis=1)
if len(stocks_sorted['S']) >= 2:
stock_return['Sector'] = stock_return[sector].apply(np.mean,axis=1)
return stock_return
plt.plot(stock_return[['Average','^OEX','Sector','Sub-industry']]*100)