您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何利用python將Matplotlib可視化插入到Excel表格中”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何利用python將Matplotlib可視化插入到Excel表格中”吧!
目前Python用來操作Excel的庫:xlrd、xlwt、openpyxl、xlwings等等。在本文中,我們會使用xlwings模塊來控制Excel插入圖表。
首先,使用Pandas模塊讀取數(shù)據(jù),并隨機預覽5行。
import pandas as pd df = pd.read_excel('可視化數(shù)據(jù).xlsx') df.sample(5)
輸出:
使用Python讀取數(shù)據(jù)后,便可以matplotlib進行數(shù)據(jù)可視化了。此處使用了《Python 數(shù)據(jù)可視化之美》中的一個例子。
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]是將一系列多維空間的點通過非線性方法映射到二維空間的可視化技術(shù),是基于圓形平行坐標系的設計思想而提出的多維可視化方法。
在xlwings庫中,想要實現(xiàn)圖表插入Excel里,主要靠的是picture對象的add()方法。
它有幾個重要的參數(shù),如下表所示:
參數(shù)名 | 釋義用法 |
---|---|
image | 文件路徑或Matplotlib圖形對象。 |
left | 以磅為單位距離左側(cè)邊緣的位置,默認為0。 |
top | 以磅為單位距離上側(cè)邊緣的位置,默認為0。 |
width | 設置圖寬。 |
height | 設置圖高。 |
name | Excel圖片名稱。如果未提供,則默認為Excel標準名稱。 |
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個工作表 sheet.pictures.add(figure) # 插入圖表 wb.save("可視化數(shù)據(jù)-新.xlsx") wb.close() app.quit()
在上述代碼中,其實關(guān)鍵代碼就一行,其他的代碼都是打開、打開、打開,關(guān)閉、關(guān)閉、關(guān)閉。這是因為xlwings想要直接操作工作表中的單元格,需要經(jīng)過多重結(jié)構(gòu),
具體如下圖所示:
最后,打開原本的Excel表格,發(fā)現(xiàn)matplotlib繪制的圖表已經(jīng)與數(shù)據(jù)放在了一起。
感謝各位的閱讀,以上就是“如何利用python將Matplotlib可視化插入到Excel表格中”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對如何利用python將Matplotlib可視化插入到Excel表格中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。