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)