Del via


Opplæring: Opprette et R-drevet Power BI-visualobjekt

Som utvikler kan du opprette dine egne Power BI-visualobjekter. Disse visualobjektene kan brukes av deg, organisasjonen eller tredjeparter.

Denne artikkelen er en trinnvis veiledning for å opprette et R-drevet visualobjekt for Power BI.

I denne opplæringen lærer du hvordan du kan gjøre følgende:

  • Opprette et R-drevet visualobjekt
  • Redigere R-skriptet i Power BI Desktop
  • Legge til biblioteker i avhengighetsfilen for visualobjektet
  • Legge til en statisk egenskap

Forutsetning

Kom i gang

  1. Klargjøre noen eksempeldata for visualobjektet. Du kan lagre disse verdiene i en Excel-database eller en .csv fil og importere den til Power BI Desktop.

    Månedsnr. Totalt antall enheter
    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. Hvis du vil opprette et visualobjekt, åpner du PowerShell eller Terminal og kjører følgende kommando:

    pbiviz new rVisualSample -t rvisual
    

    Denne kommandoen oppretter en ny mappe for visualobjektet rVisualSample . Strukturen er basert på malen rvisual . Det oppretter en fil kalt script.r i rotmappen for visualobjektet. Denne filen inneholder R-skriptet som kjøres for å generere bildet når visualobjektet gjengis. Du kan opprette R-skriptet i Power BI Desktop.

  3. Kjør følgende kommando fra den nylig opprettede rVisualSample katalogen:

    pbiviz start
    
  4. Velg visualobjekt for R-skript i Power BI Desktop:

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

  5. Tilordne data til utviklervisualobjektet ved å dra MonthNo - og Total-enheter til verdier for visualobjektet.

    Screenshot showing where to add data to values.

  6. Angi aggregasjonstypen for totalt antall enheter til Ikke oppsummer.

    Screenshot of menu with option for not summarizing data.

  7. Skriv inn følgende fra redigeringsprogrammet for R-skript i Power BI Desktop:

    plot(dataset)
    

    Denne kommandoen oppretter et punktdiagram ved hjelp av verdiene i den semantiske modellen som inndata.

  8. Velg Kjør skript-ikonet for å se resultatet.

    Screenshot of R visual chart with data.

Rediger R-skriptet

R-skriptet kan endres for å opprette andre typer visualobjekter. La oss opprette et linjediagram neste.

  1. Lim inn følgende R-kode i redigeringsprogrammet for R-skript.

    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. Velg Kjør skript-ikonet for å se resultatet.

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

  3. Når R-skriptet er klart, kopierer du det til script.r filen som er plassert i rotkatalogen for det visuelle prosjektet.

  4. Endre : name til datasettet i capabilities.json-filen, dataRolesog angi dataViewMappings inndataene til datasettet.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Legg til følgende kode for å støtte endring av størrelsen på bildet i src/visual.ts-filen .

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

Legge til biblioteker i visualobjektpakken

Pakken corrplot oppretter en grafisk visning av en korrelasjonsmatrise. Hvis du vil ha mer informasjon om corrplot, kan du se En innføring i corrplot Package.

  1. Legg til bibliotekavhengigheten corrplot i dependencies.json filen. Her er et eksempel på filinnholdet:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. Nå kan du begynne å bruke corrplot-pakken i script.r filen.

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

    Resultatet av å bruke corrplot pakken ser slik ut:

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

Legge til en statisk egenskap i egenskapsruten

Nå som vi har et grunnleggende corrplot visualobjekt, kan vi legge til egenskaper i egenskapsruten som lar brukeren endre utseendet og funksjonaliteten til visualobjektet.

Vi bruker method argumentet til å konfigurere formen på datapunktene. Standardskriptet bruker en sirkel. Endre visualobjektet slik at brukeren kan velge mellom flere alternativer.

  1. Definer en object kalt innstilling i capabilities.json-filen , og gi den følgende egenskaper.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Åpne src/settings.ts-filen. Opprett en VisualCardSettings klasse med de offentlige egenskapene method, displayName nameog slices som vist i kodeboksen.

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

    Etter disse trinnene kan du endre egenskapen for visualobjektet.

    Screenshot of R visual settings.

    Til slutt må R-skriptet ha en standardegenskap. Hvis brukeren ikke endrer egenskapsverdien (i dette tilfellet figurinnstillingen), bruker visualobjektet denne verdien.

    For R-kjøretidsvariabler for egenskapene er <objectname>_<propertyname>navnekonvensjonen i dette tilfellet settings_method.

  3. Kjør følgende R-skript:

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

Pakke og importere visualobjektet

Nå kan du pakke visualobjektet og importere det til en Hvilken som helst Power BI-rapport.

  1. displayNameFyll ut , , supportUrldescriptionforfatterens name og email, og eventuell annen viktig informasjon i pbivis.json filen.

  2. Hvis du vil endre visualobjektikonet i visualiseringsruten, erstatter du icon.png filen i aktivamappen .

  3. Fra rotkatalogen for visualobjektkjøringen:

    pbiviz package
    

    Hvis du vil ha mer informasjon om pakking av visualobjektet, kan du se Pakke det egendefinerte visualobjektet

  4. Importer pbiviz-filen for visualobjektet til en Power BI-rapport. Se Importere en visuell fil fra den lokale datamaskinen til Power BI for instruksjoner om hvordan du gjør dette.

  5. Det endelige visualobjektet ser ut som følgende eksempel:

Screenshot of R visual settings with changed value.