1. 本文思路
matplotlib应该是Python中最基础、最常用的Python绘图库!大部分利用Python进行数据分析的人应该都用过,这不是本章的重点,我也就不再赘述。
大家应该知道,绘制的matplotlib图,一般都是直接展示在控制台,供我们观看的。但是将绘制的matplotlib嵌入到Excel中,这个需求真的有点新颖。
我们已经知道matplotlib可以绘制很多种图形。如果可以完成上述操作,我们是否还可以实现这样的需求:利用pandas读取Excel中的数据,利用matplotlib绘图,然后将绘制的图形嵌入到Exce中,然后发给同事,彷佛你是在Excel中完成一样。(想法太赞!)
2. 需求实现
首先,有这样一个Excel表,数据如下:
那么,如何实现上述提到的这个需求呢?这里我们使用的是Python中的xlwings库。下面,我们分步骤为大家讲解这个过程。
① 利用pandas读取Excel数据
利用pandas我们可以读取各种各样格式的数据,这里我们读取的是xlsx格式的Excel数据。
import pandas as pd
df = pd.read_excel("matplotlib.xlsx")
df
结果如下:
② 利用matplotlib绘图
这里我也不讲述很负责,我们就以一个简单的折线图为例,进行说明。
import matplotlib.pyplot as plt
figure = plt.figure()
plt.plot(df["x"],df["y"])
plt.show()
结果如下:
③ 利用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()
最终效果:
下面是另外一张效果图,大家可以看一下!