利用python將?Matplotlib?可視化插入到?Excel表格中
前言:
在生活中工作中,我們經(jīng)常使用Excel用于儲(chǔ)存數(shù)據(jù),Tableau等BI程序處理數(shù)據(jù)并進(jìn)行可視化。我們也經(jīng)常使用R、Python編程進(jìn)行高質(zhì)量的數(shù)據(jù)可視化,生成制作了不少精美優(yōu)雅的圖表。
但是如何將這些“優(yōu)雅”延續(xù)要Excel中呢?Python繪圖庫有很多,我們就還是拿最基本的Matplotlib為例。

今天就為大家演示一下,如何將Matplotlib繪制的可視化圖片,插入到Excel中。
其他可視化庫生成的圖片,也同樣適用
數(shù)據(jù)可視化
目前Python用來操作Excel的庫:xlrd、xlwt、openpyxl、xlwings等等。在本文中,我們會(huì)使用xlwings模塊來控制Excel插入圖表。
首先,使用Pandas模塊讀取數(shù)據(jù),并隨機(jī)預(yù)覽5行。
import?pandas?as?pd
df?=?pd.read_excel('可視化數(shù)據(jù).xlsx')
df.sample(5)輸出:

使用Python讀取數(shù)據(jù)后,便可以matplotlib進(jìn)行數(shù)據(jù)可視化了。此處使用了《Python 數(shù)據(jù)可視化之美》中的一個(gè)例子。
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圖(徑向坐標(biāo)可視化)。Radviz可視化原理[2]是將一系列多維空間的點(diǎn)通過非線性方法映射到二維空間的可視化技術(shù),是基于圓形平行坐標(biāo)系的設(shè)計(jì)思想而提出的多維可視化方法。
圖表插入Excel
在xlwings庫中,想要實(shí)現(xiàn)圖表插入Excel里,主要靠的是picture對象的add()方法。
它有幾個(gè)重要的參數(shù),如下表所示:
| 參數(shù)名 | 釋義用法 |
|---|---|
| image | 文件路徑或Matplotlib圖形對象。 |
| left | 以磅為單位距離左側(cè)邊緣的位置,默認(rèn)為0。 |
| top | 以磅為單位距離上側(cè)邊緣的位置,默認(rèn)為0。 |
| width | 設(shè)置圖寬。 |
| height | 設(shè)置圖高。 |
| name | Excel圖片名稱。如果未提供,則默認(rèn)為Excel標(biāo)準(zhǔn)名稱。 |
| update | 替換更新圖片。 |
| scale | 縮放尺度。 |
在交互式環(huán)境中輸入如下命令:
import?xlwings?as?xw
app?=?xw.App(visible=False,?add_book=False)
wb?=?app.books.open('可視化數(shù)據(jù).xlsx')
sheet?=?wb.sheets[0]??#?選擇第1個(gè)工作表
sheet.pictures.add(figure)??#?插入圖表
wb.save("可視化數(shù)據(jù)-新.xlsx")
wb.close()
app.quit()在上述代碼中,其實(shí)關(guān)鍵代碼就一行,其他的代碼都是打開、打開、打開,關(guān)閉、關(guān)閉、關(guān)閉。這是因?yàn)閤lwings想要直接操作工作表中的單元格,需要經(jīng)過多重結(jié)構(gòu),
具體如下圖所示:

最后,打開原本的Excel表格,發(fā)現(xiàn)matplotlib繪制的圖表已經(jīng)與數(shù)據(jù)放在了一起。

這樣,我們就實(shí)現(xiàn)了將Matplotlib繪制的可視化圖片插入到Excel中。
到此這篇關(guān)于利用python將 Matplotlib 可視化 插入到 Excel 表格中的文章就介紹到這了,更多相關(guān)Matplotlib 插入 Excel 表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 淺談python多進(jìn)程共享變量Value的使用tips
- Python?pandas?DataFrame基礎(chǔ)運(yùn)算及空值填充詳解
- Python?Pandas多種添加行列數(shù)據(jù)方法總結(jié)
- Python如何利用pandas讀取csv數(shù)據(jù)并繪圖
- Python?pandas替換指定數(shù)據(jù)的方法實(shí)例
- python實(shí)現(xiàn)對excel中需要的數(shù)據(jù)的單元格填充顏色
- Python利用pdfplumber實(shí)現(xiàn)讀取PDF寫入Excel
- 如何利用python將Xmind用例轉(zhuǎn)為Excel用例
- Python+pandas編寫命令行腳本操作excel的tips詳情
相關(guān)文章
自動(dòng)化Nginx服務(wù)器的反向代理的配置方法
這篇文章主要介紹了自動(dòng)化Nginx服務(wù)器的反向代理的配置方法,反向代理是Nginx服務(wù)器的招牌功能,需要的朋友可以參考下2015-06-06
Python 基礎(chǔ)之字符串string詳解及實(shí)例
這篇文章主要介紹了Python 字符串(string) 的相關(guān)資料,需要的朋友可以參考下2017-04-04
Python中的logging模塊實(shí)現(xiàn)日志打印
這篇文章主要介紹了Python中的logging模塊實(shí)現(xiàn)日志打印,其實(shí)不止print打印日志方便排查問題,Python自帶的logging模塊,也可以很簡單就能實(shí)現(xiàn)日志的配置和打印,下面來看看具體的實(shí)現(xiàn)過程吧,需要的朋友可以參考一下2022-03-03
python中如何利用matplotlib畫多個(gè)并列的柱狀圖
python是一個(gè)很有趣的語言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-01-01
python實(shí)戰(zhàn)練習(xí)做一個(gè)隨機(jī)點(diǎn)名的程序
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實(shí)現(xiàn)一個(gè)隨機(jī)點(diǎn)名的程序,大家可以在過程中查缺補(bǔ)漏,提升水平2021-10-10

