Я пытаюсь записать изображение matplotlib напрямую в файл Excel, используя xlsx writer - в идеале, без сохранения файла на диск.
Я нашел этот ответ: Запись изображения pandas / matplotlib напрямуюв файл XLSX , но я не могу заставить его работать, особенно не с Python 3.
Это: wks1.insert_image(2,2, imgdata
не работает, потому что:
путь должен бытьстрока, байты, os.PathLike или целое число, а не _io.BytesIO
This: wks1.insert_image(2,2,"",{'image data': imgdata}
) выдает предупреждение
Файл изображения '' не найден.
и создает файл excel без диаграммы.
Что работает, так это локальное сохранение файла - но я хотел бы понять, есть ли способ избежать этого.
fig.savefig('test.png', format='png')
wks1.insert_image(2,2, 'test.png')
Мысли?Полный код:
import xlsxwriter
import numpy as np
import matplotlib.pyplot as plt
import io
x=np.linspace(-10,10,100)
y=x**2
fig,ax=plt.subplots()
ax.plot(x,y)
workbook = xlsxwriter.Workbook('test chart.xlsx')
wks1=workbook.add_worksheet('Test chart')
wks1.write(0,0,'test')
imgdata=io.BytesIO()
fig.savefig(imgdata, format='png')
wks1.insert_image(2,2,"",{'image data': imgdata})
#wks1.insert_image(2,2, imgdata)
workbook.close()