xlwings - python - TypeError - 图像对象

时间:2017-01-13 19:28:54

标签: python xlwings

我有一个xlwings函数(ChartXYZ()),它一直没有问题。它会在excel中生成matplot图像。

我现在添加了第二个xlwings函数(ChartSomethingElse()),它还添加了另一个matplot图像。我确保不要将新图像命名为旧图像。

问题是 - 我现在在FIRST函数(ChartXYZ())上收到以下错误:

  

TypeError:不知道如何处理该图像对象

第二个函数(ChartSomethingElse())没有问题,并产生了matplot。

功能一:

@xls.func
def plotHistData(ticker,field,startDate,endDate):
        df = histdata(ticker,field,startDate,endDate)
        sht = xls.Book.caller().sheets.active
        fig = df.plot()
        sht.pictures.add(fig, name=ticker+' hist', update=True)
        return 'Plotted chart'

功能二:

@xls.func
def plotSpreadData(tickerOne,tickerTwo,fieldOne,fieldTwo,startDate,endDate):
    df_1 = histdata(tickerOne,fieldOne,startDate,endDate)
    df_2 = histdata(tickerTwo,fieldTwo,startDate,endDate)

    diff = df_1.subtract(df_2)*100

    gs = gridspec.GridSpec(2, 1, height_ratios=[2,1])

    figure = plt.figure(1)
    plt.subplot(gs[0])
    plt.plot(df_1)
    plt.plot(df_2)
    plt.xticks([])
    plt.annotate('%0.3f' % df_1.iloc[-1],xy=(1, df_1.iloc[-1]),xytext=(8,0),
                 xycoords=('axes fraction', 'data'), textcoords='offset points')
    plt.annotate('%0.3f' % df_2.iloc[-1],xy=(1, df_2.iloc[-1]),xytext=(8,0),
                 xycoords=('axes fraction', 'data'), textcoords='offset points')

    font = {'family' : 'sans-serif',
            'weight' : 'normal',
            'size'   : 8}

    plt.rc('font', **font)


    plt.subplot(gs[1])
    plt.plot(diff)
    plt.annotate('%0.2f' % diff.iloc[-1],xy=(1, diff.iloc[-1]),xytext=(8,0),
                 xycoords=('axes fraction', 'data'), textcoords='offset points')
    plt.rc('font', **font)

    sht = xls.Book.caller().sheets.active
    sht.pictures.add(figure, name=tickerOne + ' ' + tickerTwo +' spread', update=True)
    return 'Plotted spread chart'

0 个答案:

没有答案