在 Excel [繪圖] 和 [圖表] 中建立 Python
Applies To
Microsoft 365 Excel從版本 2407 (組建 17830.20128) 開始,以及從版本 2408 (組建 17928.20216) 開始,Excel 中的 Python 用戶現在可以使用 Excel 中的 Python。從版本 2405 (組建 17628.20164) 開始,適用於在 Windows 上執行目前通道的家庭和個人使用者。 Excel 中的 Python 適用於執行目前通道 (Preview) 透過 Microsoft 365 測試人員計劃之教育版使用者。 目前不適用於 Semi-Annual 企業通道。
它將會先推出至 Windows 版 Excel,之後再推出至其他平臺。 如需更多可用性資訊,請參閱 Excel 中的 Python 可用性。
如果您對 Excel 中的 Python 有任何疑慮,請選取 Excel 中的 [說明 > 意見反應來回報問題。
第一次使用 Excel 中的 Python 嗎? 從 Excel 中的 Python 簡介 開始,以及 開始使用 Excel 中的 Python。
使用開放原始檔 Python 文件庫建立繪圖和圖表
Excel 中的 Python 隨附一組由 Anaconda 提供的核心 Python 文檔庫。 本文說明如何使用 Python 文件庫,例如 sea要和 matplotlib 來建立繪圖和圖表。 若要深入瞭解 Excel 中 Python 提供的開放原始碼文檔庫,請參閱 Excel 中的開放原始檔庫和 Python。
本文中的範例是使用虹膜花朵數據集。 下載此範例活頁簿,並依照以下文章進行: python-in-excel-iris-dataset.xlsx。
使用 sea 並建立配對繪圖
此範例示範如何建立虹膜花朵數據集的配對繪製視覺效果。 配對繪製是一組繪圖和圖表矩陣,可比較數據集中每個變數之間的關係。 在此情況下,虹膜花朵數據集包含四欄的數值數據: sepal_length、 sepal_width、 petal_length和 petal_width。
Excel 中的 Python 會使用 sea 圖表庫建立視覺效果。 Sea 體庫會自動匯入 Excel 中的 Python,並附上下列匯入語句,讓您以別名 sns 做為參考。
import seaborn as sns
若要使用 seairi 媒體櫃建立虹膜花朵數據集的配對繪圖,請執行下列步驟:
-
在 Excel 儲存格中的 Python 中輸入下列代碼段。 代碼段會將配對繪製儲存為稱為 pairplot 的變數。 它會使用 sea 的文件庫別名 sns 和 sea 要函數 配對plot 來建立配對繪圖。 pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) 代碼代碼段做為 pairplot 函數的自變數,會使用自定義的 Python 函數 xl () ,並參照工作表 Table1 中的第一個數據表。 它包含 (為 [#All]) 的整個表格內容,以及表格包含標題列 (為 標題=True) 的附註。 在此範例中,工作表中的 Table1 包含虹膜數據集。
附註: 如果您遇到任何錯誤,請參閱 疑難解答 Excel 中的 Python 錯誤 以取得詳細資訊。
-
確認您的 Python 公式之後,Excel 中的 Python 會傳回影像物件中的配對繪製視覺效果。 選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。
-
將視覺效果保留為影像物件,以繼續用於 Python 計算。 將影像擷取到 Excel 網格線以調整其大小,並更詳細地檢視每一個繪圖。 若要將影像擷取到方格,請以滑鼠右鍵按鍵按兩下或 Ctrl+單擊包含影像物件的儲存格,然後從功能表中選取 [ 在儲存格上方顯示繪圖]。
For additional information about extracting image objects, see the Extract an image object to the Excel grid article section in this article.
使用 Matplotlib 建立散佈圖
本範例說明如何使用虹膜花朵範例數據集建立散佈圖。 散佈圖顯示數據集中兩個數值變數之間的關係。 此範例會建立看起來像下列螢幕快照的散佈圖,比較 sepal_width 和 sepal_length 值。
Excel 中的 Python 會使用 Matplotlib開放原始碼庫建立視覺效果。 在 Excel 中針對 Python 自動匯入 Matplotlib文檔庫,並附上下列匯入語句,讓您以 plt 方式參照。
import matplotlib.pyplot as plt
若要使用 Matplotlib 文件庫建立虹膜花朵數據集的散佈圖,請採取下列步驟:
-
在 Excel 單元格的 Python 中,使用 matplotlib 散佈函數,並輸入 虹 膜數據集做為自變數的 sepal_length和sepal_width 欄。 在此範例中,工作表中的 Table1 包含虹膜數據集。plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))
-
在散佈圖中新增標籤和標題。 # Label the x and y axes of the plot. plt.xlabel('sepal_length') plt.ylabel('sepal_width') # Add a title to the plot. plt.title('Sepal length and width analysis')
附註: 您可以在上一個步驟的 Python 公式之後,在相同的 Excel 單元格中,將此代碼段新增為額外的程式代碼行,或者也可以在活頁簿的 Excel 單元格中,在新的 Python 中輸入它。 如果您選擇在新的儲存格中輸入,請務必遵循列主要計算順序規則,並在第一個儲存格後方輸入。
-
在確認您的 Python 公式之後,Excel 中的 Python 會將散佈圖視覺效果傳回為影像物件。 選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。
附註: 如果您遇到任何錯誤,請參閱 疑難解答 Excel 中的 Python 錯誤 以取得詳細資訊。
-
將視覺效果保留為影像物件,以繼續用於 Python 計算。 將影像擷取到 Excel 網格線以調整其大小,並更詳細地檢視繪圖。 若要將影像擷取到方格,請以滑鼠右鍵按鍵按兩下或 Ctrl+單擊包含影像物件的儲存格,然後從功能表中選取 [ 在儲存格上方顯示繪圖]。
For additional information about extracting image objects, see the Extract an image object to the Excel grid article section in this article.
將圖像物件擷取到Excel方格
如本文範例所示,seaovic 和 Matplotlib 等 Python 文檔庫可以將數據視覺效果傳回 Excel 單元格。 根據預設,Excel 中的 Python 會將這些視覺效果傳回為影像物件。
選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。
將影像擷取至 Excel 方格的方法有兩種:將影像顯示為在儲存格上方繪製,或在儲存格內顯示影像。
在儲存格上方顯示影像
請依照下列步驟,將影像顯示為在儲存格上方繪製。
-
以滑鼠右鍵單擊或 Ctrl+單擊包含圖像物件的儲存格,然後從功能表 (選取 [在儲存格 上方顯示繪圖],或使用鍵盤快捷方式 Ctrl+Alt+Shift+C) 。 這會建立一份圖像複本,該影像會浮動在Excel網格線上,而且可以輕鬆地重設大小。 原始影像物件會保留在原始儲存格中。
-
選取並拖曳繪圖影像以在工作表中移動它。 選取並拖曳影像角落和側邊的節點,以調整其大小。
在儲存格中顯示影像
請依照下列步驟在儲存格中顯示影像。
-
將影像對象傳回為 Excel 值。 選取影像物件儲存格,移至數據編輯列中的 [Python 輸出] 選單,然後選取 [Excel 值]。
繪圖影像現在會顯示在儲存格內。提示: 若要在 Python 物件和 Excel 值之間切換 Python 公式結果,請使用鍵盤快捷方式 Ctrl+Alt+Shift+M。 若要深入了解鍵盤快捷方式,請參閱 Excel 中的 Python 鍵盤快捷方式。
-
繪製圖像的大小取決於儲存格的大小。 藉由增加儲存格大小或 合併儲存格來增加影像的大小。
建立您自己的繪圖和圖表
現在您已經瞭解如何使用範例數據集在 Excel 繪圖和圖表中建立 Python,請在 Excel 活頁簿中輸入您自己的數據,然後建立自定義視覺效果。
若要匯入外部數據以搭配 Excel 中的 Python 使用,請使用 Power Query。 若要深入瞭解,請參閱使用 Power Query 匯入 Excel 中的 Python 數據。
針對非英文語言使用不同的字型
若要繪製使用非拉丁字母字元的數據,例如中文、韓文或泰文,請使用 excel.FontPath。 根據預設,Excel 中的 Python 會將非拉丁字母字元轉譯為空白的方形 (□) 。 若要解決此問題, excel.FontPath 可讓您使用 excel 模組來呼叫不同的字型並轉譯字元。
下列字型可供使用。 屬性會附加到 Python 程式代碼中的 excel.FontPath 。 路徑是指以屬性稱為字型檔案的字型檔案。
屬性 |
路徑 |
---|---|
孟加拉文 |
/usr/share/fonts/Vrinda.ttf |
CHINESE_SIMPLIFIED |
/usr/share/fonts/SimSun.ttf |
CHINESE_TRADITIONAL |
/usr/share/fonts/MingLiU.ttf |
印地語 |
/usr/share/fonts/Mangal.ttf |
日語 |
/usr/share/fonts/Meiryo.ttf |
朝鮮語 |
/usr/share/fonts/Batang.ttf |
泰語 |
/usr/share/fonts/THSarabunPSK.ttf |
勝過。FontPath 範例
之前
此圖表無法呈現適當的繪製卷標,因為預設字型不支援提供的字元。
不當呈現圖表標籤的程式代碼範例:
import matplotlib.pyplot as plt # Make the plot. myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文') # Show the plot. plt.show() |
之後
若要修正本範例中的圖表標籤,請使用 excel.FontPath.CHINESE_SIMPLIFIED 正確轉譯提供的漢字字元。
正確呈現圖表標籤的程式代碼範例:
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # Set the font path. # Returns '/usr/share/fonts/simsun.ttf' font_path = excel.FontPath.CHINESE_SIMPLIFIED # Point the properties to the font path. font_properties = FontProperties(fname=font_path) plt.rcParams['font.family'] = font_properties.get_name() # Make the plot. myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文') # Show the plot. plt.show() |