Självstudie: Skapa ett R-baserat visuellt Power BI-objekt

Som utvecklare kan du skapa egna visuella Power BI-objekt. Dessa visuella objekt kan användas av dig, din organisation eller av tredje part.

Den här artikeln är en stegvis guide för att skapa ett R-baserat visuellt objekt för Power BI.

I den här självstudien lär du dig att:

  • Skapa ett R-baserat visuellt objekt
  • Redigera R-skriptet i Power BI Desktop
  • Lägga till bibliotek i beroendefilen för det visuella objektet
  • Lägga till en statisk egenskap

Förutsättningar

Kom igång

  1. Förbered några exempeldata för det visuella objektet. Du kan spara dessa värden i en Excel-databas eller en .csv fil och importera dem till Power BI Desktop.

    Månadsnr Enheter totalt
    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. Om du vill skapa ett visuellt objekt öppnar du PowerShell eller Terminal och kör följande kommando:

    pbiviz new rVisualSample -t rvisual
    

    Det här kommandot skapar en ny mapp för det visuella rVisualSample-objektet . Strukturen baseras på mallen rvisual . Den skapar en fil med namnet script.r i rotmappen för det visuella objektet. Den här filen innehåller R-skriptet som körs för att generera avbildningen när det visuella objektet återges. Du kan skapa ditt R-skript i Power BI Desktop.

  3. Kör följande kommando från den nyligen skapade rVisualSample katalogen:

    pbiviz start
    
  4. I Power BI Desktop väljer du visuellt R-skript:

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

  5. Tilldela data till det visuella utvecklarobjektet genom att dra MonthNo - och Total-enheter till Värden för det visuella objektet.

    Screenshot showing where to add data to values.

  6. Ange aggregeringstyp för Totalt antal enheter till Sammanfatta inte.

    Screenshot of menu with option for not summarizing data.

  7. Från R-skriptredigeraren i Power BI Desktop skriver du följande:

    plot(dataset)
    

    Det här kommandot skapar ett punktdiagram med värdena i semantikmodellen som indata.

  8. Välj ikonen Kör skript för att se resultatet.

    Screenshot of R visual chart with data.

Redigera R-skriptet

R-skriptet kan ändras för att skapa andra typer av visuella objekt. Nu ska vi skapa ett linjediagram.

  1. Klistra in följande R-kod i R-skriptredigeraren.

    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. Välj ikonen Kör skript för att se resultatet.

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

  3. När R-skriptet är klart kopierar du det till script.r filen som finns i rotkatalogen för ditt visuella projekt.

  4. I filen capabilities.json ändrar du dataRoles: name till datauppsättning och anger dataViewMappings indata till datauppsättning.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Lägg till följande kod som stöd för storleksändring av avbildningen i filen 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";
      }
    

Lägga till bibliotek i det visuella paketet

Paketet corrplot skapar en grafisk visning av en korrelationsmatris. Mer information om corrplotfinns i En introduktion till corrplot-paket.

  1. Lägg till biblioteksberoendet corrplot i dependencies.json filen. Här är ett exempel på filinnehållet:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. Nu kan du börja använda corrplot-paketet i script.r filen.

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

    Resultatet av att använda corrplot paketet ser ut så här:

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

Lägga till en statisk egenskap i egenskapsfönstret

Nu när vi har ett grundläggande corrplot visuellt objekt ska vi lägga till egenskaper i egenskapsfönstret som gör att användaren kan ändra utseendet och känslan i det visuella objektet.

Vi använder method argumentet för att konfigurera formen på datapunkterna. Standardskriptet använder en cirkel. Ändra ditt visuella objekt så att användaren kan välja mellan flera alternativ.

  1. Definiera en object anropad inställning i filen capabilities.json och ge den följande egenskaper.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Öppna filen src/settings.ts. Skapa en VisualCardSettings klass med de offentliga egenskaperna method, nameoch displayNameslices som visas i kodrutans bälg.

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

    Efter de här stegen kan du ändra egenskapen för det visuella objektet.

    Screenshot of R visual settings.

    Slutligen måste R-skriptet ha en standardegenskap. Om användaren inte ändrar egenskapsvärdet (i det här fallet forminställningen) använder det visuella objektet det här värdet.

    För R-körningsvariabler för egenskaperna är <objectname>_<propertyname>namngivningskonventionen , i det här fallet settings_method.

  3. Kör följande R-skript:

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

Paketera och importera ditt visuella objekt

Nu kan du paketera det visuella objektet och importera det till valfri Power BI-rapport.

  1. Fyll i , , , författare och nameemail, och annan viktig information i pbivis.json filen. descriptionsupportUrldisplayName

  2. Om du vill ändra ikonen för det visuella objektet i visualiseringsfönstret ersätter du filen icon.png i mappen assets .

  3. Från rotkatalogen för din visuella körning:

    pbiviz package
    

    Mer information om hur du paketerar ditt visuella objekt finns i Paketera det anpassade visuella objektet

  4. Importera det visuella objektets pbiviz-fil till valfri Power BI-rapport. Se Importera en visuell fil från din lokala dator till Power BI för instruktioner om hur du gör detta.

  5. Det slutliga visuella objektet ser ut som i följande exempel:

Screenshot of R visual settings with changed value.