Zelfstudie: Een power BI-visual met R maken

Als ontwikkelaar kunt u uw eigen Power BI-visuals maken. Deze visuals kunnen door u, uw organisatie of door derden worden gebruikt.

Dit artikel is een stapsgewijze handleiding voor het maken van een R-visual voor Power BI.

In deze zelfstudie leert u het volgende:

  • Een R-visual maken
  • Het R-script bewerken in Power BI Desktop
  • Bibliotheken toevoegen aan het afhankelijkhedenbestand van de visual
  • Een statische eigenschap toevoegen

Vereisten

Aan de slag

  1. Bereid enkele voorbeeldgegevens voor de visual voor. U kunt deze waarden opslaan in een Excel-database of een .csv-bestand en dit importeren in Power BI Desktop.

    Maandnr Totaalaantal eenheden
    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. Als u een visual wilt maken, opent u PowerShell of Terminal en voert u de volgende opdracht uit:

    pbiviz new rVisualSample -t rvisual
    

    Met deze opdracht maakt u een nieuwe map voor de rVisualSample-visual . De structuur is gebaseerd op de rvisual sjabloon. Er wordt een bestand gemaakt met de naam script.r in de hoofdmap van de visual. Dit bestand bevat het R-script dat wordt uitgevoerd om de afbeelding te genereren wanneer de visual wordt weergegeven. U kunt uw R-script maken in Power BI Desktop.

  3. Voer vanuit de zojuist gemaakte rVisualSample map de volgende opdracht uit:

    pbiviz start
    
  4. Selecteer in Power BI Desktop R-scriptvisual:

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

  5. Wijs gegevens toe aan de visual voor ontwikkelaars door MonthNo- en Total-eenheden naar Waarden voor de visual te slepen.

    Screenshot showing where to add data to values.

  6. Stel het aggregatietype van Totaaleenheden in op Niet samenvatten.

    Screenshot of menu with option for not summarizing data.

  7. Typ in de R-scripteditor in Power BI Desktop het volgende:

    plot(dataset)
    

    Met deze opdracht maakt u een spreidingsdiagram met behulp van de waarden in het semantische model als invoer.

  8. Selecteer het pictogram Script uitvoeren om het resultaat weer te geven.

    Screenshot of R visual chart with data.

Het R-script bewerken

Het R-script kan worden gewijzigd om andere typen visuals te maken. We gaan nu een lijndiagram maken.

  1. Plak de volgende R-code in de R-scripteditor.

    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. Selecteer het pictogram Script uitvoeren om het resultaat weer te geven.

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

  3. Wanneer uw R-script gereed is, kopieert u het naar het script.r bestand in de hoofdmap van uw visualproject.

  4. Wijzig in het capabilities.json bestand het dataRolesvolgende: name in de gegevensset en stel de invoer in op de dataViewMappings gegevensset.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Voeg de volgende code toe ter ondersteuning van het wijzigen van het formaat van de installatiekopieën in het bestand src/visual.ts .

      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";
      }
    

Bibliotheken toevoegen aan visualpakket

Het corrplot pakket maakt een grafische weergave van een correlatiematrix. Zie An Introduction to corrplot Package (Inleiding tot corrplot Package) voor meer informatie over.corrplot

  1. Voeg de corrplot bibliotheekafhankelijkheid toe aan het dependencies.json bestand. Hier volgt een voorbeeld van de bestandsinhoud:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. U kunt nu het corrplot-pakket in uw script.r bestand gaan gebruiken.

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

    Het resultaat van het gebruik corrplot van een pakket ziet er als volgt uit:

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

Een statische eigenschap toevoegen aan het eigenschappenvenster

Nu we een eenvoudige corrplot visual hebben, gaan we eigenschappen toevoegen aan het eigenschappenvenster waarmee de gebruiker het uiterlijk van de visual kan wijzigen.

We gebruiken het method argument om de vorm van de gegevenspunten te configureren. Het standaardscript maakt gebruik van een cirkel. Wijzig uw visual zodat de gebruiker uit verschillende opties kan kiezen.

  1. Definieer een object aangeroepen instellingen in het capabilities.json bestand en geef het de volgende eigenschappen.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Open het bestand src/settings.ts . Maak een VisualCardSettings klasse met de openbare eigenschappenmethod, namedisplayName en slices zoals wordt weergegeven in het codevak.

    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];
    }
    

    Na deze stappen kunt u de eigenschap van de visual wijzigen.

    Screenshot of R visual settings.

    Ten slotte moet het R-script een standaardeigenschap hebben. Als de gebruiker de eigenschapswaarde niet wijzigt (in dit geval de shape-instelling), gebruikt de visual deze waarde.

    Voor R-runtimevariabelen voor de eigenschappen is <objectname>_<propertyname>de naamconventie in dit geval settings_method.

  3. Voer het volgende R-script uit:

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

Uw visual verpakken en importeren

U kunt de visual nu verpakken en importeren in elk Power BI-rapport.

  1. Vul de displayName, supportUrl, , auteur namedescriptionen emailandere belangrijke informatie in het pbivis.json bestand in.

  2. Als u het pictogram van de visual in het visualisatiedeelvenster wilt wijzigen, vervangt u het icon.png bestand in de map assets .

  3. Voer vanuit de hoofdmap van uw visual het volgende uit:

    pbiviz package
    

    Zie De aangepaste visual verpakken voor meer informatie over het verpakken van uw visual

  4. Importeer het pbiviz-bestand van de visual in een Power BI-rapport. Zie Een visueel bestand van uw lokale computer importeren in Power BI voor instructies over hoe u dit doet.

  5. Uw uiteindelijke visual ziet eruit zoals in het volgende voorbeeld:

Screenshot of R visual settings with changed value.