Delen via


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 handleiding leer je hoe je:

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

Vereiste voorwaarden

Get started

  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.

    Maandnummer Totaal aantal 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 DesktopR-script-visual:

    Schermopname van de R-script visualisatie in de Power BI Desktop.

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

    Schermopname die laat zien waar gegevens aan waarden moeten worden toegevoegd.

  6. Stel het aggregatietype van Totaaleenhedenin op Niet samenvatten.

    Schermopname van het menu met de optie voor het niet samenvatten van gegevens.

  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.

    Schermopname van een R-visualdiagram met gegevens.

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.

    Schermopname van het resultaat van het uitvoeren van het script, een lijnplot.

  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 bestand capabilities.json het dataRoles: name in gegevensset en stel de invoer in op dataViewMappingsgegevensset.

    {
      "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 afbeelding in het src/visual.ts-bestand .

      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 corrplot meer informatie over.

  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 van een corrplot pakket is zoals in dit voorbeeld:

    Schermopname van het visualisatiedeelvenster met vier ovalen die zijn gemaakt door 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.

    Schermopname van R-visualinstellingen.

    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, description, de auteur's name en email en andere 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 assets-map.

  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:

Schermopname van R-visualinstellingen met gewijzigde waarde.