使用 Python 建立 Power BI 視覺效果

本教學課程可協助您開始使用Power BI Desktop中的 Python 資料建立視覺效果。 您可以使用幾個可用的選項和功能,透過 Python、pandas 和 Matplotlib 連結庫來建立視覺報表。

必要條件

在 Power BI Desktop 中執行 Python 腳本,以:

  • 本機電腦上安裝 Python

  • 在 Power BI Desktop 中啟用 Python 腳本。

  • 安裝 pandasMatplotlib 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 視覺效果

  1. 匯入 Python 腳本之後,請在 [Power BI Desktop 視覺效果] 窗格中選取 Python 視覺效果圖示。

    Screenshot that shows the Python option in Visualizations.

  2. 在出現的 [ 啟用腳本視覺效果 ] 對話框中,選取 [ 啟用]。

    占位元 Python 視覺效果影像會出現在報表畫布上,Python 腳本編輯器 會出現在中央窗格底部。

    Screenshot that shows the Python script editor.

  3. [年齡]、 [兒童]、 [Fname]、 [性別]、 [寵物]、 [狀態] 和 [加權 ] 字段拖曳至 [值 ] 區段,其中顯示 [在這裡新增數據欄位]。

    Screenshot that shows Drag to Add data fields here.

    根據您的選擇,Python 腳本編輯器會產生下列系結程序代碼。

    • 編輯器會建立 數據集 數據框架,其中包含您新增的欄位。
    • 默認匯總為 [不摘要]。
    • 類似於資料表視覺效果,欄位會進行分組,且重複列只會出現一次。
  4. 當您選取的欄位自動產生資料框架時,您可以撰寫 Python 腳本,以繪製至 Python 預設裝置。 當腳本完成時,請從 Python 腳本編輯器標題列選取 [執行] 圖示,以執行腳本併產生視覺效果。

    Screenshot that shows the Python script editor with initial comments.

提示

  • 您的 Python 腳本只能使用新增至 [值] 區段的欄位。 您可以在 Python 文稿上工作時新增或移除欄位。 Power BI Desktop 會自動偵測欄位變更。 當您從 [值 ] 區段中選取或移除欄位時,會自動產生或移除 Python 腳本編輯器中的程式碼。

  • 在某些情況下,您可能不想要自動分組,或是想要顯示所有數據列,包括重複專案。 在這些情況下,您可以將索引字段新增至數據集,讓所有數據列都視為唯一,並防止分組。

  • 您可以使用資料集的名稱來存取資料集中的數據列。 例如,您可以在 Python 腳本中撰寫程式代碼 dataset["Age"] 來存取年齡字段。

  • 當您從 Python 腳本編輯器標題列選取 [執行] 時,或每當因為數據重新整理、篩選或醒目提示而發生數據變更時,Power BI Desktop 會重繪視覺效果。

  • 當您執行產生錯誤的 Python 腳本時,不會繪製 Python 視覺效果,而且畫布上會出現錯誤訊息。 如需錯誤詳細數據,請選取 訊息中的 [查看詳細數據 ]。

  • 若要取得視覺效果的較大檢視,您可以將 Python 腳本編輯器最小化

建立散佈圖

建立散佈圖,以查看年齡和權數之間是否有相互關聯。

  1. 在 Python 文稿編輯器在此貼上或鍵入您的腳本程式代碼底下,輸入下列程式代碼:

    import matplotlib.pyplot as plt 
    dataset.plot(kind='scatter', x='Age', y='Weight', color='red')
    plt.show() 
    

    您的 Python 文稿編輯器窗格現在看起來應該像下圖:

    Screenshot that shows the Python script editor with commands.

    程式代碼會匯入 Matplotlib 連結庫,以繪製並建立視覺效果。

  2. 選取 [ 執行 腳本] 按鈕,以在 Python 視覺效果中產生下列散佈圖。

    Screenshot that shows the scatter plot visualization generated from the Python script.

建立具有多個數據行的折線圖

為每個顯示其兒童和寵物數目的人建立線條圖。

  1. 在 [在這裡貼上或鍵入您的腳本程序代碼] 底下,移除或批註上述程式代碼,然後輸入下列 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() 
    
  2. 選取 [ 執行] 按鈕,以產生具有多個資料行的下列線條繪圖:

    Screenshot that shows a line plot with multiple columns from the Python script.

建立條形圖

建立每個人年齡的條形圖。

  1. 在 [在這裡貼上或鍵入您的腳本程序代碼] 底下,移除或批註上述程式代碼,然後輸入下列 Python 程式代碼:

    import matplotlib.pyplot as plt 
    dataset.plot(kind='bar',x='Fname',y='Age') 
    plt.show() 
    
  2. 選取 [ 執行] 按鈕以產生下列直方圖:

    Screenshot that shows a bar plot from the Python script.

限制

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 連結庫建立視覺報表的選項和功能介面。 如需詳細資訊,請參閱以下資源:

如需 Power BI 中 Python 的詳細資訊,請參閱: