使用 Python 建立 Power BI 視覺效果
本教學課程可協助您開始使用Power BI Desktop中的 Python 資料建立視覺效果。 您可以使用幾個可用的選項和功能,透過 Python、pandas 和 Matplotlib 連結庫來建立視覺報表。
必要條件
在 Power BI Desktop 中執行 Python 腳本,以:
在 本機電腦上安裝 Python 。
在 Power BI Desktop 中啟用 Python 腳本。
安裝 pandas 和 Matplotlib Python 連結庫。
將下列 Python 腳本匯入 Power BI Desktop:
import pandas as pd df = pd.DataFrame({ 'Fname':['Harry','Sally','Paul','Abe','June','Mike','Tom'], 'Age':[21,34,42,18,24,80,22], 'Weight': [180, 130, 200, 140, 176, 142, 210], 'Gender':['M','F','M','M','F','M','M'], 'State':['Washington','Oregon','California','Washington','Nevada','Texas','Nevada'], 'Children':[4,1,2,3,0,2,0], 'Pets':[3,2,2,5,0,1,5] }) print (df)
在 Power BI Desktop 中建立 Python 視覺效果
匯入 Python 腳本之後,請在 [Power BI Desktop 視覺效果] 窗格中選取 Python 視覺效果圖示。
在出現的 [ 啟用腳本視覺效果 ] 對話框中,選取 [ 啟用]。
占位元 Python 視覺效果影像會出現在報表畫布上,Python 腳本編輯器 會出現在中央窗格底部。
將 [年齡]、 [兒童]、 [Fname]、 [性別]、 [寵物]、 [狀態] 和 [加權 ] 字段拖曳至 [值 ] 區段,其中顯示 [在這裡新增數據欄位]。
根據您的選擇,Python 腳本編輯器會產生下列系結程序代碼。
- 編輯器會建立 數據集 數據框架,其中包含您新增的欄位。
- 默認匯總為 [不摘要]。
- 類似於資料表視覺效果,欄位會進行分組,且重複列只會出現一次。
當您選取的欄位自動產生資料框架時,您可以撰寫 Python 腳本,以繪製至 Python 預設裝置。 當腳本完成時,請從 Python 腳本編輯器標題列選取 [執行] 圖示,以執行腳本併產生視覺效果。
提示
您的 Python 腳本只能使用新增至 [值] 區段的欄位。 您可以在 Python 文稿上工作時新增或移除欄位。 Power BI Desktop 會自動偵測欄位變更。 當您從 [值 ] 區段中選取或移除欄位時,會自動產生或移除 Python 腳本編輯器中的程式碼。
在某些情況下,您可能不想要自動分組,或是想要顯示所有數據列,包括重複專案。 在這些情況下,您可以將索引字段新增至數據集,讓所有數據列都視為唯一,並防止分組。
您可以使用資料集的名稱來存取資料集中的數據列。 例如,您可以在 Python 腳本中撰寫程式代碼
dataset["Age"]
來存取年齡字段。當您從 Python 腳本編輯器標題列選取 [執行] 時,或每當因為數據重新整理、篩選或醒目提示而發生數據變更時,Power BI Desktop 會重繪視覺效果。
當您執行產生錯誤的 Python 腳本時,不會繪製 Python 視覺效果,而且畫布上會出現錯誤訊息。 如需錯誤詳細數據,請選取 訊息中的 [查看詳細數據 ]。
若要取得視覺效果的較大檢視,您可以將 Python 腳本編輯器最小化。
建立散佈圖
建立散佈圖,以查看年齡和權數之間是否有相互關聯。
在 Python 文稿編輯器中,在此貼上或鍵入您的腳本程式代碼底下,輸入下列程式代碼:
import matplotlib.pyplot as plt dataset.plot(kind='scatter', x='Age', y='Weight', color='red') plt.show()
您的 Python 文稿編輯器窗格現在看起來應該像下圖:
程式代碼會匯入 Matplotlib 連結庫,以繪製並建立視覺效果。
選取 [ 執行 腳本] 按鈕,以在 Python 視覺效果中產生下列散佈圖。
建立具有多個數據行的折線圖
為每個顯示其兒童和寵物數目的人建立線條圖。
在 [在這裡貼上或鍵入您的腳本程序代碼] 底下,移除或批註上述程式代碼,然後輸入下列 Python 程式代碼:
import matplotlib.pyplot as plt ax = plt.gca() dataset.plot(kind='line',x='Fname',y='Children',ax=ax) dataset.plot(kind='line',x='Fname',y='Pets', color='red', ax=ax) plt.show()
選取 [ 執行] 按鈕,以產生具有多個資料行的下列線條繪圖:
建立條形圖
建立每個人年齡的條形圖。
在 [在這裡貼上或鍵入您的腳本程序代碼] 底下,移除或批註上述程式代碼,然後輸入下列 Python 程式代碼:
import matplotlib.pyplot as plt dataset.plot(kind='bar',x='Fname',y='Age') plt.show()
選取 [ 執行] 按鈕以產生下列直方圖:
限制
Power BI Desktop 中的 Python 視覺效果有下列限制:
Python 視覺效果用於繪製的數據限製為150,000個數據列。 如果選取超過 150,000 個數據列,則只會使用前 150,000 個數據列,且影像上會出現訊息。 輸入數據也有 250 MB 的限制。
如果 Python 視覺效果的輸入數據集有包含超過 32,766 個字元之字串值的數據行,則會截斷該值。
所有 Python 視覺效果都會以 72 DPI 解析度顯示。
如果 Python 視覺效果計算超過五分鐘,則執行逾時,這會導致錯誤。
如同其他 Power BI Desktop 視覺效果,如果您從不同數據表選取數據欄位,但兩者之間沒有定義關聯性,就會發生錯誤。
Python 視覺效果會在數據更新、篩選和醒目提示時重新整理。 影像本身不是互動式的。
Python 視覺效果會回應反白顯示其他視覺效果中的元素,但您無法選取 Python 視覺效果中的元素來交叉篩選其他元素。
只有在畫布上正確顯示 Python 預設顯示裝置的繪圖。 避免使用不同的 Python 顯示裝置。
Python 視覺效果不支援重新命名輸入數據行。 在文稿執行期間,數據行會以其原始名稱來參考。
安全性
Python 視覺效果會使用 Python 腳本,其中包含具有安全性或隱私權風險的程序代碼。 當您第一次嘗試檢視或與 Python 視覺效果互動時,會收到安全性警告。 只有在信任作者和來源,或檢閱並瞭解 Python 腳本之後,才啟用 Python 視覺效果。
授權
Python 視覺效果需要 Power BI Pro 或 進階版 Per User (PPU) 授權,才能在報表、重新整理、篩選和交叉篩選中轉譯。 免費 Power BI 的使用者只能取用 進階版 工作區中與其共用的磚。
下表說明以授權為基礎的 Python 視覺效果功能。
在 Power BI Desktop 中撰寫 Python 視覺效果 | 使用 Python 視覺效果建立 Power BI 服務 報表 | 在報表中檢視 Python 視覺效果 | |
---|---|---|---|
來賓 (Power BI Embedded) | 支援 | 不支援 | 僅 進階版/Azure 容量支援 |
非受控租使用者 (未驗證網域) | 支援 | 不支援 | 不支援 |
具有免費授權的受控租使用者 | 支援 | 不支援 | 僅 進階版容量支援 |
具有 Pro 或 PPU 授權的受控租使用者 | 支援 | 支援 | 支援 |
如需 Power BI Pro 授權及其與免費授權有何不同的詳細資訊,請參閱 購買和指派 Power BI Pro 使用者授權。
相關內容
本教學課程幾乎無法從 Python、pandas 和 Matplotlib 連結庫建立視覺報表的選項和功能介面。 如需詳細資訊,請參閱以下資源:
- Matplotlib 網站上的檔。
- Matplotlib 教學課程:搭配 Python 使用 Matplotlib 的基本指南
- Matplotlib 教學課程 – Python Matplotlib 連結庫與範例
- Pandas API 參考
- Power BI 服務 中的 Python 視覺效果
- 在 Power BI 中使用 Python 視覺效果
- 完整的 Python 腳本教學課程
如需 Power BI 中 Python 的詳細資訊,請參閱: