Tutorial: Erstellen von R-gestützten Power BI-Visuals

Als Entwickler können Sie eigene Power BI-Visuals erstellen. Diese Visuals können von Ihnen, Ihrer Organisation oder Dritten verwendet werden.

In diesem Artikel finden Sie eine ausführliche Anleitung für das Erstellen eines R-basierten Visuals für Power BI.

In diesem Tutorial erhalten Sie Informationen zu den folgenden Vorgängen:

  • Erstellen von R-gestützten Visuals
  • Bearbeiten des R-Skripts in Power BI Desktop
  • Hinzufügen von Bibliotheken zur Abhängigkeitsdatei des Visuals
  • Hinzufügen von statischen Eigenschaften

Voraussetzungen

Erste Schritte

  1. Bereiten Sie einige Beispieldaten für das Visual auf. Sie können diese Werte in einer Excel-Datenbank oder in einer CSV-Datei speichern und in Power BI Desktop importieren.

    Monatsnr Total Units
    1 2303
    2 2319
    3 1732
    4 1615
    5 1427
    6 2253
    7 1147
    8 1515
    9 2516
    10 3131
    11 3170
    12 2762
  2. Öffnen Sie PowerShell oder das Terminal, und führen Sie den folgenden Befehl aus, um ein Visual zu erstellen:

    pbiviz new rVisualSample -t rvisual
    

    Mit diesem Befehl wird ein neuer Ordner für das Visual rVisualSample erstellt. Die Struktur basiert auf der Vorlage rvisual. Hierbei wird im Stammordner des Visuals eine Datei mit dem Namen script.r erstellt. Diese Datei enthält das R-Skript, das ausgeführt wird, um das Bild zu generieren, wenn das Visual gerendert wird. Sie können Ihr R-Skript in Power BI Desktop erstellen.

  3. Führen Sie in dem neu erstellten Verzeichnis rVisualSample den folgenden Befehl aus:

    pbiviz start
    
  4. Klicken Sie in Power BI Desktop auf die Option Visuelles R-Skriptelement:

    Screenshot of the R script visual control in the Power BI Desktop.

  5. Weisen Sie dem Entwicklervisual Daten zu, indem Sie MonthNo und Total units in den Bereich Werte für das Visual ziehen.

    Screenshot showing where to add data to values.

  6. Legen Sie den Aggregationstyp für Total units auf Nicht zusammenfassen fest.

    Screenshot of menu with option for not summarizing data.

  7. Geben Sie im R-Skript-Editor in Power BI Desktop Folgendes ein:

    plot(dataset)
    

    Mit diesem Befehl wird ein Punkt (XY)-Diagramm erstellt, wobei die Werte im semantischen Modell als Eingabe verwendet werden.

  8. Klicken Sie auf das Symbol Skript ausführen, um das Ergebnis abzurufen.

    Screenshot of R visual chart with data.

Bearbeiten des R-Skripts

Das R-Skript kann so geändert werden, dass andere Arten von Visuals erstellt werden. Erstellen Sie als Nächstes ein Liniendiagramm.

  1. Fügen Sie den folgenden R-Code im R-Skript-Editor ein:

    x <- dataset[,1] # get the first column from semantic model
    y <- dataset[,2] # get the second column from semantic model
    
    columnNames = colnames(dataset) # get column names
    
    plot(x, y, type="n", xlab=columnNames[1], ylab=columnNames[2]) # draw empty plot with axis and labels only
    lines(x, y, col="green") # draw line plot
    
  2. Klicken Sie auf das Symbol Skript ausführen, um das Ergebnis abzurufen.

    Screenshot of the result of running the script, which is a line plot.

  3. Wenn Ihr R-Skript bereit ist, kopieren Sie es in die Datei script.r im Stammverzeichnis Ihres Visualprojekts.

  4. Ändern Sie in der Datei capabilities.json unter dataRoles den Wert für name in dataset, und legen Sie die Eingabe für dataViewMappings auf dataset fest.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Fügen Sie den folgenden Code hinzu, um die Größe des Image in der Datei src/visual.ts anzupassen.

      public onResizing(finalViewport: IViewport): void {
          this.imageDiv.style.height = finalViewport.height + "px";
          this.imageDiv.style.width = finalViewport.width + "px";
          this.imageElement.style.height = finalViewport.height + "px";
          this.imageElement.style.width = finalViewport.width + "px";
      }
    

Hinzufügen von Bibliotheken zum Visualpaket

Das Paket corrplot erstellt eine grafische Darstellung einer Korrelationsmatrix. Weitere Informationen zu corrplot finden Sie unter Einführung in das corrplot-Paket.

  1. Fügen Sie in der Datei dependencies.json die corrplot-Bibliotheksabhängigkeit hinzu. Nachfolgend finden Sie ein Beispiel für den Dateiinhalt:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. Nun können Sie mit der Verwendung des corrplot-Pakets in Ihrer Datei script.r beginnen.

    library(corrplot)
    corr <- cor(dataset)
    corrplot(corr, method="circle", order = "hclust")
    

    Wenn Sie das corrplot-Paket verwenden, sieht das in etwa wie im folgenden Beispiel aus:

    Screenshot of the visualization pane with four ovals created by corrplot.

Hinzufügen einer statischen Eigenschaft zum Eigenschaftsbereich

Nachdem Sie nun über ein einfaches corrplot-Visual verfügen, fügen Sie im Folgenden Eigenschaften zum Eigenschaftsbereich hinzu, über die der Benutzer die Darstellung des Visuals ändern kann.

Verwenden Sie das Argument method zum Konfigurieren der Form der Datenpunkte. Das Standardskript verwendet einen Kreis. Bearbeiten Sie das Visual so, dass die Benutzer aus mehreren Optionen auswählen können.

  1. Definieren Sie in der Datei capabilities.json ein object-Element mit dem Namen settings, und legen Sie dafür die folgenden Eigenschaften fest.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Öffnen Sie die Datei src/settings.ts. Erstellen Sie eine VisualCardSettings-Klasse mit den öffentlichen Eigenschaften method, namedisplayName und slices, wie im Codefeld unten dargestellt.

    import ItemDropdown = formattingSettings.ItemDropdown;
    
    const methodOptions = [
        {
            displayName: "Circle",
            value: "circle"
        },
        {
            displayName: "Square",
            value: "square"
        },
        {
            displayName: "Ellipse",
            value: "ellipse"
        },
        {
            displayName: "Number",
            value: "number"
        },
        {
            displayName: "Shade",
            value: "shade"
        },
        {
            displayName: "Color",
            value: "color"
        },
        {
            displayName: "Pie",
            value: "pie"
        }
    ]
    
    class VisualCardSettings extends FormattingSettingsCard {
        method: FormattingSettingsSlice = new ItemDropdown({
            name: "method",
            displayName: "Method",
            items: methodOptions,
            value: methodOptions[0]
        });
    
        name: string = "settings";
        displayName: string = "Settings";
        slices: Array<FormattingSettingsSlice> = [this.method];
    }
    

    Nachdem Sie diese Schritte ausgeführt haben, können Sie die Eigenschaft des Visuals ändern.

    Screenshot of R visual settings.

    Schließlich muss das R-Skript über eine Standardeigenschaft verfügen. Wenn der Benutzer den Wert der Eigenschaft (in diesem Fall die Formeinstellung) nicht ändert, verwendet das Visual diesen Wert.

    Für R-Runtimevariablen für die Eigenschaften gilt die Namenskonvention <objectname>_<propertyname>. In diesem Beispiel lautet der Name deshalb settings_method.

  3. Führen Sie das folgende R-Skript aus:

    library(corrplot)
    corr <- cor(dataset)
    
    if (!exists("settings_method"))
    {
        settings_method = "circle";
    }
    
    corrplot(corr, method=settings_method, order = "hclust")
    

Packen und Importieren Ihres Visuals

Nun können Sie das Visual packen und in einen beliebigen Power BI-Bericht importieren.

  1. Geben Sie in der Datei pbivis.json die Werte für displayName, supportUrl und description, den Namen des Autors (name) und seine E-Mail-Adresse (email) an sowie alle weiteren wichtigen Informationen.

  2. Wenn Sie das Symbol des Visuals im Visualisierungsbereich ändern möchten, ersetzen Sie die Datei icon.png im Ordner assets.

  3. Führen Sie im Stammverzeichnis Ihres Visuals den folgenden Befehl aus:

    pbiviz package
    

    Weitere Informationen zum Packen Ihres Visuals finden Sie unter Packen des benutzerdefinierten Visuals.

  4. Importieren Sie die PBIVIZ-Datei des Visuals in einen beliebigen Power BI-Bericht. Eine Anleitung hierfür finden Sie unter Importieren einer Visualdatei von Ihrem lokalen Computer in Power BI.

  5. Das fertige Visual sieht in etwa wie im folgenden Beispiel aus:

Screenshot of R visual settings with changed value.