利用Python将Matplotlib可视化插入到Excel表格中

追风的人
追风的人
发布时间:2026-10-15| 4人浏览过
原创

本文详解如何利用Python的xlwings库将Matplotlib生成的可视化图表无缝插入Excel文件。通过读取数据、绘制RadViz径向坐标图,并使用picture对象的add()方法指定位置与尺寸,实现数据与图表的一体化展示,适用于需要自动化生成Excel报告的场景。

前言:

在日常办公与数据分析中,Excel常被用于数据存储,Tableau等BI工具用于处理及可视化展示。同时,我们也常借助R或Python编写代码,生成高质量且美观的数据图表。

然而,如何将这种“优雅”的可视化效果延伸至Excel环境中呢?尽管Python拥有众多绘图库,本文仍以基础且常用的Matplotlib为例进行说明。

本文将演示如何将Matplotlib生成的可视化图片嵌入到Excel文件中。

此方法同样适用于其他可视化库生成的图像。

数据可视化

目前Python中操作Excel的库包括xlrd、xlwt、openpyxl和xlwings等。本文选用xlwings模块来控制Excel并插入图表。

首先,利用Pandas模块读取数据,并随机预览前5行。

import pandas as pd
df = pd.read_excel('可视化数据.xlsx')
df.sample(5)

输出:

读取数据后,即可使用matplotlib进行可视化处理。此处引用《Python 数据可视化之美》中的示例。

import numpy as np
from pandas.plotting import radviz
import matplotlib.pyplot as plt

angle = np.arange(360)/180*3.14159
x = np.cos(angle)
y = np.sin(angle)

figure = plt.figure(figsize=(3.5, 3.5), dpi=100)
ax = radviz(df, 'variety', color=['#FC0000', '#F0AC02', '#009E88'], edgecolors='k', marker='o', s=34, linewidths=1)
plt.plot(x, y, color='gray')
plt.axis('off')
plt.legend(loc="center", bbox_to_anchor=(1.1, 0, 0, 0.4), edgecolor='none', facecolor='none', title='Group')

输出:

上述代码生成的图形为RadViz图(径向坐标可视化)。RadViz可视化原理[2]是一种将多维空间数据点通过非线性方法映射至二维空间的可视化技术,其设计思想基于圆形平行坐标系。

图表插入Excel

在xlwings库中,实现图表插入Excel的核心在于调用picture对象的add()方法。

该方法包含几个关键参数,具体见下表:

参数名释义用法
image文件路径或Matplotlib图形对象。
left以磅为单位距离左侧边缘的位置,默认为0。
top以磅为单位距离上侧边缘的位置,默认为0。
width设置图宽。
height设置图高。
nameExcel图片名称。如果未提供,则默认为Excel标准名称。
update替换更新图片。
scale缩放尺度。

在交互式环境中执行以下命令:

import xlwings as xw

app = xw.App(visible=False, add_book=False)
wb = app.books.open('可视化数据.xlsx')
sheet = wb.sheets[0]  # 选择第1个工作表
sheet.pictures.add(figure)  # 插入图表
wb.save("可视化数据-新.xlsx")
wb.close()
app.quit()

上述代码中,核心操作仅一行,其余均为打开、保存及关闭Excel文件的流程。这是因为xlwings直接操作工作表单元格需经过多层对象结构,

具体层级关系如下图所示:

最后,打开生成的Excel文件,可见Matplotlib绘制的图表已与原始数据并列展示。

至此,我们成功实现了将Matplotlib可视化图片插入到Excel表格中。

到此这篇关于利用python将 Matplotlib 可视化 插入到 Excel 表格中的文章就介绍到这了,更多相关Matplotlib 插入 Excel 表格内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。