首頁 > 軟體

利用python將 Matplotlib 視覺化插入到 Excel表格中

2022-06-13 18:03:08

前言:

在生活中工作中,我們經常使用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)

輸出:

使用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')

輸出:

上面繪製得到的圖形是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想要直接操作工作表中的單元格,需要經過多重結構,

具體如下圖所示:

最後,開啟原本的Excel表格,發現matplotlib繪製的圖表已經與資料放在了一起。

這樣,我們就實現了將Matplotlib繪製的視覺化圖片插入到Excel中。

到此這篇關於利用python將 Matplotlib 視覺化 插入到 Excel 表格中的文章就介紹到這了,更多相關Matplotlib 插入 Excel 表格內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com