共用方式為


使用 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 視覺效果] 圖示。

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

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

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

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

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

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

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

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

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

提示

  • 您的 Python 指令碼只能使用新增至 [值] 區段的欄位。 您可以在 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. 選取 [執行] 按鈕,以在 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 區域。 這表示當工作區具有 Fabric 授權、專業版或 PPU 授權,或 (3) 進階授權,且 PBI 主租用戶位於具有 Fabric Spark 工作負載可用性的區域時,發佈至工作區的報表會顯示 Python 圖表視覺效果。 所有用戶在 Desktop 中皆支援 Python 視覺效果。

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

此教學課程只是稍微說明使用 Python、Pandas 及 Matplotlib 程式庫來建立視覺報表的許多選項及功能。 如需詳細資訊,請參閱以下資源:

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