首页 > 解决方案 > 无法将 matplotlib 绘图导出到 excel 表 --- Jupyter notebook 中使用 matplotlib 到 Excel 绘制的图形

问题描述

从 Stackoverflow,我得到了以下任务代码

    import matplotlib.pyplot as plt
    Import openpyxl
    #Graph Command
    plt.scatter('Month','Balance',data=test)
    #Saving
    plt.savefig("myplot.png", dpi = 150)

    wb = load_workbook('input.xlsx')
    ws = wb.active

    img = image('myplot.png')
    img.anchor(ws.cell('A1'))

    ws.add_image(img)
    wb.save('output.xlsx')

但我遇到了错误

“TypeError:‘模块’对象不可调用”

我更改代码

import matplotlib.pyplot as plt
from openpyxl import load_workbook
from openpyxl.drawing import image

plt.scatter('Month','Balance',data=test)
plt.savefig("myplot.png", dpi = 150)

wb = load_workbook('input.xlsx')
ws = wb.active

img = image('myplot.png')
img.anchor(ws.cell('A1'))

ws.add_image(img)
wb.save('output.xlsx')

但仍然是同样的错误。

请帮助我将多个图表/绘图从 Jupyter 笔记本导出到 Excel 表。

标签: pythonmatplotlib

解决方案


对代码进行一些更改后得到答案:-

import openpyxl
import matplotlib.pyplot as plt

fig = plt.figure()
#plotting Graph
plt.scatter('Month','Balance',data=test)
fig.savefig('temp.png', dpi=fig.dpi)

#Saving Graph in the excel Sheet
wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.image.Image('temp.png')
img.anchor = 'A1'
ws.add_image(img)
wb.save('out.xlsx')

推荐阅读