Esercitazione: Creare un oggetto visivo power BI basato su R

Gli sviluppatori possono creare oggetti visivi di Power BI personalizzati. Questi oggetti visivi possono essere usati dall'utente, dall'organizzazione o da terze parti.

Questo articolo è una guida dettagliata per la creazione di un oggetto visivo basato su R per Power BI.

In questa esercitazione apprenderai a:

  • Creare un oggetto visivo basato su R
  • Modificare lo script R in Power BI Desktop
  • Aggiungere librerie al file delle dipendenze dell'oggetto visivo
  • Aggiungere una proprietà statica

Prerequisiti

Attività iniziali

  1. Preparare alcuni dati di esempio per l'oggetto visivo. È possibile salvare questi valori in un database di Excel o in un file di .csv e importarli in Power BI Desktop.

    MonthNo 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. Per creare un oggetto visivo, aprire PowerShell o Terminale ed eseguire il comando seguente:

    pbiviz new rVisualSample -t rvisual
    

    Questo comando crea una nuova cartella per l'oggetto visivo rVisualSample . La struttura è basata sul rvisual modello. Crea un file denominato script.r nella cartella radice dell'oggetto visivo. Questo file contiene lo script R eseguito per generare l'immagine quando viene eseguito il rendering dell'oggetto visivo. È possibile creare lo script R in Power BI Desktop.

  3. Dalla directory appena creata rVisualSample eseguire il comando seguente:

    pbiviz start
    
  4. In Power BI Desktop selezionare Oggetto visivo script R:

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

  5. Assegnare i dati all'oggetto visivo dello sviluppatore trascinando MonthNo e Total units (Unità totali) in Values (Valori) per l'oggetto visivo.

    Screenshot showing where to add data to values.

  6. Impostare il tipo di aggregazione di Total units (Totale unità ) su Don't summarize (Non riepilogare).

    Screenshot of menu with option for not summarizing data.

  7. Dall'editor di script R in Power BI Desktop digitare quanto segue:

    plot(dataset)
    

    Questo comando crea un grafico a dispersione usando i valori nel modello semantico come input.

  8. Selezionare l'icona Esegui script per visualizzare il risultato.

    Screenshot of R visual chart with data.

Modificare lo script R

Lo script R può essere modificato per creare altri tipi di oggetti visivi. Verrà ora creato un grafico a linee.

  1. Incollare il codice R seguente nell'editor di script R.

    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. Selezionare l'icona Esegui script per visualizzare il risultato.

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

  3. Quando lo script R è pronto, copiarlo nel script.r file che si trova nella directory radice del progetto visivo.

  4. Nel file capabilities.json modificare : namedataRolesin set di dati e impostare l'input dataViewMappings su set di dati.

    {
      "dataRoles": [
        {
          "displayName": "Values",
          "kind": "GroupingOrMeasure",
          "name": "dataset"
        }
      ],
      "dataViewMappings": [
        {
          "scriptResult": {
            "dataInput": {
              "table": {
                "rows": {
                  "select": [
                    {
                      "for": {
                        "in": "dataset"
                      }
                    }
                  ],
                  "dataReductionAlgorithm": {
                    "top": {}
                  }
                }
              }
            },
            ...
          }
        }
      ],
    }
    
  5. Aggiungere il codice seguente per supportare il ridimensionamento dell'immagine nel file 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";
      }
    

Aggiungere librerie al pacchetto visivo

Il corrplot pacchetto crea una visualizzazione grafica di una matrice di correlazione. Per altre informazioni su corrplot, vedere Introduzione al pacchetto corrplot.

  1. Aggiungere la dipendenza della corrplot libreria al dependencies.json file. Di seguito è riportato un esempio del contenuto del file:

    {
      "cranPackages": [
        {
          "name": "corrplot",
          "displayName": "corrplot",
          "url": "https://cran.r-project.org/web/packages/corrplot/"
        }
      ]
    }
    
  2. È ora possibile iniziare a usare il pacchetto corrplot nel script.r file.

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

    Il risultato dell'uso corrplot del pacchetto è simile all'esempio seguente:

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

Aggiungere una proprietà statica al riquadro delle proprietà

Ora che è disponibile un oggetto visivo di base corrplot , aggiungere proprietà al riquadro delle proprietà che consentono all'utente di modificare l'aspetto dell'oggetto visivo.

Viene usato l'argomento method per configurare la forma dei punti dati. Lo script predefinito usa un cerchio. Modificare l'oggetto visivo per consentire all'utente di scegliere tra diverse opzioni.

  1. Definire le object impostazioni chiamate nel file capabilities.json e assegnargli le proprietà seguenti.

    "settings": {
      "properties": {
        "method": {
          "type": {
            "enumeration": [
              { "value": "circle" },
              { "value": "square" },
              { "value": "ellipse" },
              { "value": "number" },
              { "value": "shade" },
              { "value": "color" },
              { "value": "pie" }
            ]
          }
        }
      }
    }
    
  2. Aprire il file src/settings.ts . Creare una VisualCardSettings classe con le proprietà methodpubbliche , namedisplayName e slices come illustrato nella casella di codice visualizzata di seguito.

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

    Dopo questi passaggi, è possibile modificare la proprietà dell'oggetto visivo.

    Screenshot of R visual settings.

    Infine, lo script R deve avere una proprietà predefinita. Se l'utente non modifica il valore della proprietà (in questo caso, l'impostazione della forma), l'oggetto visivo usa questo valore.

    Per le variabili di runtime R per le proprietà, la convenzione di denominazione è <objectname>_<propertyname>, in questo caso . settings_method

  3. Eseguire lo script R seguente:

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

Creare un pacchetto e importare l'oggetto visivo

È ora possibile creare un pacchetto dell'oggetto visivo e importarlo in qualsiasi report di Power BI.

  1. Compilare , displayNamesupportUrl, description, name e emailqualsiasi altra informazione importante nel pbivis.json file .

  2. Se si vuole modificare l'icona dell'oggetto visivo nel riquadro di visualizzazione, sostituire il file icon.png nella cartella assets .

  3. Dalla directory radice dell'esecuzione dell'oggetto visivo:

    pbiviz package
    

    Per altre informazioni sulla creazione di pacchetti dell'oggetto visivo, vedere Creazione di pacchetti dell'oggetto visivo personalizzato

  4. Importare il file pbiviz dell'oggetto visivo in qualsiasi report di Power BI. Per istruzioni su come eseguire questa operazione, vedere Importare un file visivo dal computer locale in Power BI .

  5. L'oggetto visivo finale è simile all'esempio seguente:

Screenshot of R visual settings with changed value.