Condividi tramite


Esercitazione: Creare un oggetto visivo di 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 contiene 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

Operazioni preliminari

  1. Preparare alcuni dati di esempio per l'oggetto visivo. È possibile salvare questi valori in un database di Excel o in un file CSV da importare 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 il 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 modello rvisual. 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 il proprio 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 del controllo visivo script R in Power BI Desktop.

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

    Screenshot che mostra dove aggiungere dati ai valori.

  6. Impostare il tipo di aggregazione del Totale unità su Non riepilogare.

    Screenshot del menu con l'opzione per non riepilogare i dati.

  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 del grafico visivo R con i dati.

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 del risultato dell'esecuzione dello script, ovvero un tracciato a linee.

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

  4. Nel file capabilities.json modificare dataRoles: name in 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 dell'oggetto visivo

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

  1. Aggiungere la dipendenza della libreria corrplot al file dependencies.json. Di seguito è riportato un esempio di 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 file script.r.

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

    Il risultato dell'uso del pacchetto corrplot è simile a questo esempio:

    Screenshot del riquadro di visualizzazione con quattro ovali creati da 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 un object denominato impostazioni 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 file. Creare una classe VisualCardSettings con le proprietà pubbliche method, name, displayName 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 questa procedura, è possibile modificare la proprietà dell'oggetto visivo.

    Screenshot delle impostazioni dell'oggetto visivo R.

    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 displayName, supportUrl, description, name e email, oltre a qualsiasi altra informazione importante nel file pbivis.json.

  2. Per 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 avrà un aspetto simile al seguente:

Screenshot delle impostazioni dell'oggetto visivo R con il valore modificato.