Как вернуть диаграмму matplot в excel, используя xlwing и Python? - PullRequest
0 голосов
/ 10 февраля 2019

Я новичок в Python и Xlwings.Я пытаюсь создать UDF для возврата "BOX сюжет" в Excel.Таблица в Excel содержит два столбца «Sales_Region» и «Total Sales».

При выполнении приведенного ниже кода появляется сообщение об ошибке «Требуется объект».Я думаю, что ошибка в основном из-за неправильного использования декораторов.Нужна помощь!

import seaborn as sns, numpy as np
import matplotlib.pyplot as plt
import xlwings as xw
import pandas as pd
from pandas import DataFrame



@xw.func
@xw.arg('df', pd.DataFrame, index = False, header=True)
@xw.arg('x_name', category = str)
@xw.arg('y_name', category = str)

def BOX_Plot(df,x_name,y_name):

    dt = pd.DataFrame(df)
    names = x_name
    bill =  y_name


    sns.set_style("whitegrid")
    ax = sns.boxplot(x=names, y=bill, data=dt)

    medians = dt.groupby([names])[bill].median().values
    median_labels = [str(np.round(s, 2)) for s in medians]

    pos = range(len(medians))
    for tick,label in zip(pos,ax.get_xticklabels()):
        ax.text(pos[tick], medians[tick], median_labels[tick], 
                horizontalalignment='center', size='x-small', color='w', weight='semibold')

    plt.show()

    return "Done!"

1 Ответ

0 голосов
/ 10 февраля 2019

Код был идеальным, я забыл добавить ссылку на Xlwings в инструмент VBA.

...