共用方式為


使用 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 視覺效果

完成先修條件後,你會在 Power BI Desktop 中看到一個表格,裡面有 Python 腳本的範例資料: FnameAgeWeightGenderStateChildrenPets。 這個教學使用那個表格來製作可視化。

  1. 在 Power BI Desktop 視覺化窗格中選擇 Python 視覺圖示。

    顯示 [視覺效果] 中 [Python] 選項的螢幕擷取畫面。

  2. 在隨即顯示的 [啟用指令碼視覺效果] 對話方塊中,選取 [啟用]

    預留位置 Python 視覺效果影像會出現在報表畫布上,而 Python 指令碼編輯器會出現在中央窗格底部。

    顯示 Python 指令碼編輯器的螢幕擷取畫面。

  3. 年齡子女名字性別寵物體重欄位拖曳至 [值] 區段顯示 [於此處新增資料欄位] 的位置。

    顯示 [拖曳以在於此處新增資料欄位] 的螢幕擷取畫面。

    依據您選取的項目,[Python 指令碼編輯器] 會產生下列繫結程式碼。

    • 編輯器已建立 [資料集] 資料框架,其中有您所新增的欄位。
    • 預設彙總為 [不摘要]
    • 類似於資料表視覺效果,欄位會進行分組,且重複列只會出現一次。
  4. 利用你選擇欄位自動產生的資料框,你可以編寫一個 Python 腳本,將圖形繪製到 Python 的預設輸出裝置。 當指令碼完成時,請從 Python 指令碼編輯器標題列選取 [執行] 圖示,以執行指令碼並產生視覺效果。

    顯示 Python 指令碼編輯器與初始註解的螢幕擷取畫面。

提示

  • 你的 Python 腳本只能使用你在 Values 區塊新增的欄位。 你可以在寫 Python 腳本時新增或移除欄位。 Power BI Desktop 會自動偵測欄位變更。 從 [值] 區段選取或移除欄位時,Python 指令碼編輯器中的支援程式碼會隨之自動產生或移除。

  • 在某些情況下,您可能不想要自動分組,或您希望顯示所有的資料列 (包括重複項目在內)。 在這種情況下,可以在資料集中新增一個索引欄位,讓所有列都獨一無二,並防止分組。

  • 您可以使用名稱來存取資料集中的資料行。 例如,您可以在 Python 指令碼中編寫 dataset["Age"],以存取 [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 指令碼編輯器] 窗格現在看起來應該像下圖:

    顯示 Python 指令碼編輯器與命令的螢幕擷取畫面。

    程式碼會匯入 Matplotlib 程式庫,其會繪製並建立視覺效果。

  2. 選擇 Run 以在 Python 視覺化中產生以下散點圖。

    顯示從 Python 指令碼產生的散佈圖視覺效果的螢幕擷取畫面。

搭配多個資料行建立折線圖

為每個人建立折線圖,來顯示他們的子女及寵物的數目。

  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. 選擇 「運行 」以產生以下多欄線圖:

    顯示來自 Python 指令碼具有多個資料行折線圖的螢幕擷取畫面。

建立橫條圖

為每個人的年齡建立橫條圖。

  1. 於 [在此貼上或鍵入您的指令碼] 底下,移除或註解化上述程式碼,然後輸入下列 Python 程式碼:

    import matplotlib.pyplot as plt 
    dataset.plot(kind='bar',x='Fname',y='Age') 
    plt.show() 
    
  2. 選擇 「運行 」以產生以下條狀圖:

    顯示來自 Python 指令碼的橫條圖的螢幕擷取畫面。

限制

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 或 Premium Per User (PPU) 授權,才能在報表、重新整理、篩選和交叉篩選中呈現。 免費 Power BI 的使用者只能取用 Premium 工作區中與他們共用的報表。

下表根據授權描述 Python 視覺效果的功能。

在 Power BI Desktop 中撰寫 Python 視覺效果 使用 Python 視覺效果建立 Power BI 服務報表 在報表中檢視 Python 視覺效果
來賓 (Power BI Embedded) 支援 不支援 Fabric/Premium 工作區支援*
非受控租用戶 (未驗證網域) 支援 不支援 不支援
具有免費授權的受控租用戶 支援 不支援 Fabric/Premium 工作區支援*
具有 Pro 或 PPU 授權的受控租用戶 支援 支援 支援*

服務中的 Python 視覺化僅支援於 Fabric 區域。 此支援的作用是:在工作區擁有(1)Fabric 授權,或(2)Pro 或 PPU 授權,或(3)高級授權且 PBI 主租戶位於具備 Fabric Spark 工作負載可用區域的情況下,發佈至工作區的報告會顯示 Python 圖表視覺化功能。 所有用戶在 Desktop 中皆支援 Python 視覺效果。

如需 Power BI Pro 授權及其與免費版授權有何不同的詳細資訊,請參閱購買和指派 Power BI Pro 使用者授權

這個教學只是略觸及使用 Python、pandas 和 Matplotlib 函式庫來製作視覺報告的選項與功能。 如需詳細資訊,請參閱以下資源:

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