1. 本文思路

matplotlib应该是Python中最基础、最常用的Python绘图库!大部分利用Python进行数据分析的人应该都用过,这不是本章的重点,我也就不再赘述。

大家应该知道,绘制的matplotlib图,一般都是直接展示在控制台,供我们观看的。但是将绘制的matplotlib嵌入到Excel中,这个需求真的有点新颖。

python使用plt画图导出 python画图并保存到excel中_数据可视化

我们已经知道matplotlib可以绘制很多种图形。如果可以完成上述操作,我们是否还可以实现这样的需求:利用pandas读取Excel中的数据,利用matplotlib绘图,然后将绘制的图形嵌入到Exce中,然后发给同事,彷佛你是在Excel中完成一样。(想法太赞!)

2. 需求实现

首先,有这样一个Excel表,数据如下:

python使用plt画图导出 python画图并保存到excel中_数据分析_02

那么,如何实现上述提到的这个需求呢?这里我们使用的是Python中的xlwings库。下面,我们分步骤为大家讲解这个过程。

① 利用pandas读取Excel数据

利用pandas我们可以读取各种各样格式的数据,这里我们读取的是xlsx格式的Excel数据。

import pandas as pd

df = pd.read_excel("matplotlib.xlsx")
df

结果如下:

python使用plt画图导出 python画图并保存到excel中_python使用plt画图导出_03

② 利用matplotlib绘图

这里我也不讲述很负责,我们就以一个简单的折线图为例,进行说明。

import matplotlib.pyplot as plt

figure = plt.figure()
plt.plot(df["x"],df["y"])
plt.show()

结果如下:

python使用plt画图导出 python画图并保存到excel中_csv_04

③ 利用xlwings将上述图形嵌入到Excel中

这里我将绘制的图形,写入到了一个新工作表中。大家可以下去思考,怎么讲数据和图形放置在同一个工作表中。

import xlwings as xw

app = xw.App(visible=False)
wb = app.books.add()
ws = wb.sheets.add("新工作表")
# 将绘制的图形写入到工作簿,直接传入画布(figure)对象
ws.pictures.add(figure)
wb.save("matplotlib1.xlsx")
wb.close()
app.quit()

最终效果:

python使用plt画图导出 python画图并保存到excel中_xhtml_05

下面是另外一张效果图,大家可以看一下!

python使用plt画图导出 python画图并保存到excel中_数据可视化_06