温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-06-13 15:45:09 来源:亿速云 阅读:543 作者:iii 栏目:开发技术

这篇文章主要讲解了“如何利用python将Matplotlib可视化插入到Excel表格中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python将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表格中

感谢各位的阅读,以上就是“如何利用python将Matplotlib可视化插入到Excel表格中”的内容了,经过本文的学习后,相信大家对如何利用python将Matplotlib可视化插入到Excel表格中这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI