Condividi tramite


Creare un tracciato a imbuto da uno script R all'oggetto visivo R

Questo articolo descrive nei dettagli come creare un tracciato a imbuto usando uno script R nell'oggetto visivo R. I file di origine sono disponibili per il download in ogni set di passaggi.

In questo articolo vengono illustrate le procedure per creare:

  • uno script R per RStudio
  • un oggetto visivo R in Power BI
  • un oggetto visivo basato su R basato su PNG in Power BI
  • un oggetto visivo basato su R basato su HTML in Power BI

Il tracciato a imbuto fornisce un modo semplice per utilizzare, interpretare e mostrare la quantità di variazione prevista. L'imbuto viene formato usando i limiti di confidenza e gli outlier vengono visualizzati come punti all'esterno dell'imbuto.

In questo esempio il tracciato a imbuto viene usato per confrontare e analizzare vari dati di set.

Prerequisiti

Creare uno script R con modello semantico

  1. Scaricare uno script R minimo e la relativa tabella dati dataset.csv.

  2. Modificare quindi lo script in modo corrispondente a questo script. Vengono così aggiunti la gestione degli errori di input e i parametri utente per controllare l'aspetto del tracciato.

Creare un report

Modificare quindi lo script in modo corrispondente a questo script. Questa operazione carica dataset.csv invece di read.csv nell'area di lavoro di Power BI Desktop e crea una tabella Cancer Mortality. Vedere i risultati nel file PBIX seguente.

Nota

dataset è un nome hardcoded per il data.frame di input di qualsiasi oggetto visivo R.

Creare un oggetto visivo basato su R e un pacchetto nel codice R

  1. Eseguire il comando seguente per creare un nuovo oggetto visivo basato su R:

    pbiviz new funnel-visual -t rvisual
    cd funnel-visual
    npm install 
    pbiviz package
    

    Questo comando crea la cartella funnel-visual con l'oggetto visivo modello iniziale (-t per template). Il file PBIVIZ si trova nella cartella dist, il codice R all'interno del file script.r. Provare a importarlo in Power BI e vedere cosa accade.

  2. Modificare il file script.r e sostituire il contenuto con lo script precedente.

  3. Modificare capabilities.json e sostituire la stringa Values con dataset. Questo sostituisce il nome "Role" nel modello in modo che sia simile nel codice R.

    Lo screenshot mostra un confronto delle differenze relativo alla modifica nel file JSON.

  4. (facoltativo) Modificare dependencies.json e aggiungere una sezione per ogni pacchetto R richiesto dallo script R. Ciò indica a Power BI di importare automaticamente questi pacchetti quando l'oggetto visivo viene caricato per la prima volta.

    Lo screenshot mostra un confronto delle differenze dove è stato aggiunto contenuto agli elementi cranPackages.

  5. Creare di nuovo il pacchetto per l'oggetto visivo usando il comando pbiviz package e provare a importarlo in Power BI.

Nota

Vedere PBIX e codice sorgente per il download.

Migliorare gli oggetti visivi basati su R

L'oggetto visivo non è ancora intuitivo perché l'utente deve conoscere l'ordine delle colonne nella tabella di input.

  1. Dividere il campo di input dataset in tre campi (ruoli): Population, Number e Tooltips

    CV01to02

  2. Modificare capabilities.json e sostituire il ruolo dataset con i tre nuovi ruoli oppure scaricare capabilities.json.

    È necessario aggiornare le sezioni dataRoles e dataViewMappings, che definiscono i nomi, i tipi, le descrizioni comando e le colonne massime per ogni campo di input.

    prima e dopo

    Per altre informazioni, vedere Funzionalità e proprietà degli oggetti visivi di Power BI.

  3. Modificare script.r per supportare Population, Number e Tooltips come frame di dati di input anziché dataset oppure scaricare script.r.

    script

    Suggerimento

    Per seguire le modifiche apportate nello script R, cercare i blocchi di commento:

    #RVIZ_IN_PBI_GUIDE:BEGIN: Added to enable visual fields
    ...
    #RVIZ_IN_PBI_GUIDE:END: Added to enable visual fields
    
    #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields 
    ...
    #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields
    
  4. Creare di nuovo il pacchetto per l'oggetto visivo usando il comando pbiviz package e provare a importarlo in Power BI.

Nota

Vedere PBIX e codice sorgente per il download.

Aggiungere i parametri utente

  1. Aggiungere funzionalità che consentono all'utente di controllare i colori e le dimensioni degli elementi visivi, inclusi i parametri interni dall'interfaccia utente.

    Lo screenshot mostra due versioni del riquadro degli strumenti con opzioni aggiunte alla versione sulla destra.

  2. Modificare capabilities.json e aggiornare la sezione objects. Qui vengono definiti i nomi, le descrizioni comando e i tipi di ogni parametro e viene anche deciso il partizionamento dei parametri in gruppi (in questo caso tre gruppi).

    Scaricare capabilities.json. Vedere Oggetti e proprietà degli oggetti visivi di Power BI per altre informazioni.

    capabilities

  3. Modificare src/settings.ts in modo corrispondente a questo file settings.ts. Questo file è scritto in TypeScript.

    Qui sono disponibili due blocchi del codice aggiunto per:

    • Dichiarare una nuova interfaccia per contenere il valore della proprietà
    • Definire una proprietà del membro e i valori predefiniti

    settings

  4. Modificare script.r in modo corrispondente a questo file script.r. Viene aggiunto il supporto per i parametri nell'interfaccia utente aggiungendo chiamate if.exists per ogni parametro utente.

    Suggerimento

    Per seguire le modifiche apportate nello script R, cercare i commenti:

    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to enable user parameters
     ...
    #RVIZ_IN_PBI_GUIDE:END:Added to enable user parameters
    
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to enable user parameters 
     ...
    #RVIZ_IN_PBI_GUIDE:END:Removed to enable user parameters
    

    script prima e dopo

    È possibile decidere di non esporre i parametri nell'interfaccia utente, come in questo caso.

  5. Creare di nuovo il pacchetto per l'oggetto visivo usando il comando pbiviz package e provare a importarlo in Power BI.

Nota

Vedere PBIX e codice sorgente per il download.

Suggerimento

Qui sono stati aggiunti parametri di diversi tipi (boolean, numeric, string e color) tutti contemporaneamente. Per un caso semplice, vedere questo esempio su come aggiungere un singolo parametro.

Convertire l'oggetto visivo in oggetto visivo basato su RHTML

Poiché l'oggetto visivo risultante è basato su PNG, non risponde al passaggio del mouse, non è possibile eseguire lo zoom avanti e così via, quindi è necessario convertirlo in un oggetto visivo basato su HTML. Verrà creato un modello di oggetto visivo basato su HTML basato su R vuoto, quindi verranno copiati alcuni script dal progetto basato su PNG.

  1. Eseguire il comando :

    pbiviz new funnel-visual-HTML -t rhtml
    cd funnel-visual-HTML
    npm install 
    pbiviz package
    
  2. Aprire capabilities.json e notare la riga "scriptOutputType":"html".

  3. Aprire dependencies.json e notare i nomi dei pacchetti R elencati.

  4. Aprire script.r e notare la struttura. È possibile aprirlo ed eseguirlo in RStudio perché non usa input esterno.

    Viene così creato e salvato il file out.html. Questo file è indipendente (senza dipendenze esterne) e definisce la grafica all'interno del widget HTML.

    Importante

    Per gli utenti di htmlWidgets, le utilità R vengono fornite nella cartella r_files per consentire la conversione di oggetti plotly o widget in codice HTML indipendente.

    Questa versione dell'oggetto visivo basato su R supporta anche il comando source (a differenza dei tipi di oggetti visivi precedenti), per rendere il codice più leggibile.

  5. Sostituire capabilities.json con il file capabilities.json del passaggio precedente oppure scaricare capabilities.json.

    Assicurarsi di mantenere:

    "scriptOutputType": "html"

  6. Unire la versione più recente di script.r con il file script.r dal modello oppure scaricare script.r.

    Il nuovo script usa il pacchetto plotly per convertire l'oggetto ggplot in un oggetto plotly e quindi il pacchetto htmlWidgets per salvarlo in un file HTML.

    La maggior parte delle funzioni di utilità viene spostata in r_files/utils.r e viene aggiunta la funzione generateNiceTooltips per l'aspetto dell'oggetto plotly.

    1

    2

    Suggerimento

    Per seguire le modifiche apportate nello script R, cercare i commenti:

    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based 
     ...
    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based
    
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based  
    ...
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based
    
  7. Unire la versione più recente di dependencies.json con il file dependencies.json dal modello, per includere le dipendenze del nuovo pacchetto R oppure scaricare dependencies.json.

  8. Modificare src/settings.ts nello stesso modo dei passaggi precedenti.

  9. Creare di nuovo il pacchetto per l'oggetto visivo usando il comando pbiviz package e provare a importarlo in Power BI.

Nota

Vedere PBIX e codice sorgente per il download.

Creare ulteriori esempi

  1. Eseguire il comando seguente per creare un progetto vuoto:

    pbiviz new example -t rhtml
    cd example
    npm install 
    pbiviz package
    
  2. Prendere il codice da questa raccolta e apportare le modifiche evidenziate:

    Modifiche evidenziate

  3. Sostituire script.r del modello ed eseguire di nuovo pbiviz package. L'oggetto visivo è ora incluso nel report di Power BI.

Suggerimenti

  • Si consiglia agli sviluppatori di modificare pbiviz.json per archiviare i metadati corretti, ad esempio version, email, name, license type e così via.

    Importante

    Il campo guid è l'identificatore univoco per un oggetto visivo. Se si crea un nuovo progetto per ogni oggetto visivo, anche il GUID sarà diverso. Rimane uguale sono quando si usa un progetto precedente copiato in un nuovo oggetto visivo, operazione sconsigliata.

  • Modificare assets/icon.png per creare icone univoche per l'oggetto visivo.

  • Per eseguire il debug del codice R in RStudio usando gli stessi dati del report di Power BI, aggiungere quanto segue all'inizio dello script R (modificare la variabile fileRda):

    #DEBUG in RStudio
    fileRda = "C:/Users/yourUserName/Temp/tempData.Rda"
    if(file.exists(dirname(fileRda)))
    {
       if(Sys.getenv("RSTUDIO")!="")
         load(file= fileRda)
       else
         save(list = ls(all.names = TRUE), file=fileRda)
    }
    

    Questo codice consente di salvare l'ambiente da un report di Power BI e di caricarlo in RStudio.

  • Non è necessario sviluppare oggetti visivi basati su R da zero con il codice disponibile in GitHub. È possibile selezionare l'oggetto visivo da usare come modello e copiare il codice in un nuovo progetto.

    Ad esempio, provare a usare l'oggetto visivo personalizzato spline.

  • Ogni oggetto visivo R applica l'operatore unique alla relativa tabella di input. Per evitare la rimozione di righe identiche, è consigliabile aggiungere un campo di input aggiuntivo con un ID univoco e ignorarlo nel codice R.

  • Se si dispone di un account Power BI, usare il servizio Power BI per sviluppare un oggetto visivo in modo immediato anziché ricreare il pacchetto con il comando pbiviz package.

Esplorare gli oggetti visivi nella raccolta di widget HTML per usarli negli oggetti visivi personalizzati. Per semplificare l'operazione, è stato creato un repository del progetto degli oggetti visivi con oltre 20 oggetti visivi HTML interattivi tra cui scegliere.

Suggerimento

Per spostarsi tra i widget HTML, usare Formato>Impostazioni>Tipo. Provare con questo file PBIX.

Per usare un esempio per l'oggetto visivo

  1. Scaricare l'intera cartella.
  2. Modificare script.r e dependencies.json per mantenere un solo widget.
  3. Modificare capabilities.json e settings.ts per rimuovere il selettore Type.
  4. Modificare const updateHTMLHead: boolean = true; in false in visual.ts. (per prestazioni migliori)
  5. Modificare i metadati in pbiviz.json, soprattutto il campo guid.
  6. Ricreare il pacchetto e continuare a personalizzare l'oggetto visivo come desiderato.

Lo screenshot mostra sei widget illustrati in precedenza in questo articolo.

Lo screenshot mostra altri sei widget illustrati in precedenza in questo articolo.

Nota

Non tutti i widget di questo progetto sono supportati dal servizio.

Per altre informazioni, vedere ulteriori esercitazioni di Power BI, Sviluppo di un oggetto visivo circle card di Power BI e Oggetti visivi R.

Scoprire come sviluppare e inviare oggetti visivi a Office Store (raccolta) o vedere la raccolta di script R per altri esempi.