超赞!你绘制的Matplotlib图,可以直接嵌入到Excel中了!

2021-08-09 11:33:31 浏览数 (1)

作者:黄伟呢

来源:快学Python

本文思路

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

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

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

需求实现

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

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

① 利用pandas读取Excel数据

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

代码语言:javascript复制
import pandas as pd

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

结果如下:

② 利用matplotlib绘图

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

代码语言:javascript复制
import matplotlib.pyplot as plt

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

结果如下:

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

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

代码语言:javascript复制
import xlwings as xw

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

最终效果:

拓展:这篇文章主要是想为大家讲解一个解题思路,具体的细节问题,需要大家自行下去挖掘学习。文中涉及到的三个库,建议学习数据分析的朋友都下去学习一下。

人生苦短,快学Python

0 人点赞