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

作者:??Python编程学习圈???? 时间:2023-09-26 09:03:25 

前言:

在生活中工作中,我们经常使用Excel用于储存数据,Tableau等BI程序处理数据并进行可视化。我们也经常使用R、Python编程进行高质量的数据可视化,生成制作了不少精美优雅的图表。

但是如何将这些“优雅”延续要Excel中呢?Python绘图库有很多,我们就还是拿最基本的Matplotlib为例。

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

今天就为大家演示一下,如何将Matplotlib绘制的可视化图片,插入到Excel中

其他可视化库生成的图片,也同样适用

数据可视化

目前Python用来操作Excel的库:xlrd、xlwt、openpyxl、xlwings等等。在本文中,我们会使用xlwings模块来控制Excel插入图表。

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

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

输出:

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

使用Python读取数据后,便可以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')

输出:

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

上面绘制得到的图形是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()

在上述代码中,其实关键代码就一行,其他的代码都是打开、打开、打开,关闭、关闭、关闭。这是因为xlwings想要直接操作工作表中的单元格,需要经过多重结构,

具体如下图所示:

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

最后,打开原本的Excel表格,发现matplotlib绘制的图表已经与数据放在了一起。

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

这样,我们就实现了将Matplotlib绘制的可视化图片插入到Excel中。

来源:https://juejin.cn/post/7108554139436580872

标签:python,Matplotlib,Excel,表格
0
投稿

猜你喜欢

  • 教女朋友学Python3(二)简单的输入输出及内置函数查看 <font color=red>原创</font>

    2022-11-14 08:32:18
  • python2爬取百度贴吧指定关键字和图片代码实例

    2022-10-12 09:03:44
  • Python玩转PDF的各种骚操作

    2023-07-07 17:51:59
  • Oracle数据库编写有效事务指导方针

    2009-03-19 17:41:00
  • 只用40行Python代码就能写出pdf转word小工具

    2021-11-03 18:02:00
  • DreamWeaver经典技巧四则

    2007-12-03 11:34:00
  • CentOS 7 安装 MySQL 5.6遇到的各种问题小结

    2024-01-20 23:51:39
  • Python绘制专业的K线图 源代码解析

    2023-09-02 09:51:35
  • ASP在线生成电话图片程序

    2007-10-06 23:06:00
  • python内打印变量之%和f的实例

    2021-06-19 07:46:46
  • python数字图像处理像素的访问与裁剪示例

    2023-05-12 11:07:20
  • innerHTML 的些摘记

    2009-06-01 15:42:00
  • python实现ip查询示例

    2021-07-07 20:04:32
  • Node.js 的异步 IO 性能探讨

    2024-05-13 09:58:15
  • json显示日期带T问题的解决方法

    2022-05-12 16:50:37
  • Pandas.DataFrame的行名和列名的修改

    2022-10-12 12:40:35
  • 使用Python编写简单的画图板程序的示例教程

    2022-04-28 03:22:15
  • 微信小程序 数据缓存实现方法详解

    2024-04-19 09:49:22
  • 发现几处IE与firefox的js和css几处不同点

    2008-02-02 10:15:00
  • SQL Server2019数据库之简单子查询的具有方法

    2024-01-21 23:27:31
  • asp之家 网络编程 m.aspxhome.com