Del via


Opplæring: Bygge et traktplott fra R-skript til R-visualobjekt

Denne artikkelen beskriver hvordan du bygger et traktplott ved hjelp av R-skript i trinnvis R-visualobjekt. Kildefiler er tilgjengelige for nedlasting under hvert sett med trinn.

I denne artikkelen lærer du hvordan du oppretter:

  • et R-skript for RStudio
  • et R-visualobjekt i Power BI
  • et PNG-basert R-drevet visualobjekt i Power BI
  • et HTML-basert R-drevet visualobjekt i Power BI

Traktplottet gir en enkel måte å forbruke, tolke og vise mengden forventet variasjon på. Trakten dannes ved hjelp av konfidensgrenser og ytterpunkter vises som prikker utenfor trakten.

I dette eksemplet brukes traktplottet til å sammenligne og analysere ulike settdata.

Forutsetning

Bygg et R-skript med semantisk modell

  1. Last ned et minimalt R-skript og datatabellen, dataset.csv.

  2. Deretter redigerer du skriptet for å speile dette skriptet. Dette legger til inndatafeilbehandling og brukerparametere for å kontrollere tegneutseendet.

Bygge en rapport

Deretter redigerer du skriptet for å speile dette skriptet. Dette lastes inn dataset.csv i stedet for read.csv inn i Power BI Desktop-arbeidsområdet og oppretter en tabell for kreftdødelighet. Se resultatene i følgende PBIX-fil.

Merk

Er dataset et hardkodet navn for inndata data.frame fra et R-visualobjekt.

Opprette et R-drevet visualobjekt og pakke i R-kode

  1. Kjør følgende kommando for å opprette et nytt R-drevet visualobjekt:

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

    Denne kommandoen oppretter mappen trakt-visualobjekt med første mal visualobjekt (-t for mal). Du finner PBIVIZ i dist-mappen , R-koden i script.r-filen . Prøv å importere den til Power BI og se hva som skjer.

  2. Rediger script.r-fil og erstatt innholdet med det forrige skriptet.

  3. Rediger capabilities.json og erstatt strengen Values med dataset. Dette erstatter navnet på «Rolle» i malen for å være som i R-kode.

    Skjermbilde som viser en diff-sammenligning av endringen i json-filen.

  4. (valgfritt) Rediger dependencies.json og legg til en inndeling for hver R-pakke som kreves av R-skriptet. Dette ber Power BI om å importere disse pakkene automatisk når visualobjektet lastes inn for første gang.

    Skjermbilde som viser en diff-sammenligning der innhold er lagt til i cranPackages-elementene.

  5. Pakk visualobjektet på nytt ved hjelp av pbiviz package kommandoen, og prøv å importere det til Power BI.

Merk

Se PBIX og kildekode for nedlasting.

Forbedre R-baserte visualobjekter

Visualobjektet er ennå ikke brukervennlig fordi brukeren må vite rekkefølgen på kolonnene i inndatatabellen.

  1. Dele inndatafeltet dataset i tre felt (roller): Population, Numberog Tooltips

    CV01to02

  2. Rediger capabilities.json og erstatt dataset rollen med de tre nye rollene, eller last ned capabilities.json.

    Du må oppdatere inndelinger: dataRoles og dataViewMappings, som definerer navn, typer, verktøytips og maksimalt antall kolonner for hvert inndatafelt.

    før og etter

    Hvis du vil ha mer informasjon, kan du se funksjoner.

  3. Rediger script.r for å støtte Population, Number og Tooltips som inndatarammer i stedet datasetfor , eller last ned script.r.

    skript

    Tips

    Hvis du vil følge endringene i R-skript, søker du etter kommentarblokker:

    #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. Pakk visualobjektet på nytt ved hjelp av pbiviz package kommandoen, og prøv å importere det til Power BI.

Merk

Se PBIX og kildekode for nedlasting.

Legg til brukerparametere

  1. Legg til funksjoner for brukeren for å kontrollere farger og størrelser på visuelle elementer, inkludert interne parametere fra brukergrensesnittet.

    Skjermbilde som viser to versjoner av verktøyruten med alternativer som er lagt til versjonen til høyre.

  2. Rediger capabilities.json og oppdater inndelingen objects . Her definerer vi navn, verktøytips og typer for hver parameter, og bestemmer også partisjonen av parametere i grupper (tre grupper i dette tilfellet).

    last ned capabilities.json, se objektegenskaper for mer informasjon

    funksjonaliteter

  3. Rediger src/settings.ts for å speile denne settings.ts. Denne filen er skrevet i TypeScript.

    Her finner du to blokker av koden som er lagt til:

    • Deklarer nytt grensesnitt for å holde egenskapsverdien
    • Definer en medlemsegenskap og standardverdier

    innstillinger

  4. Rediger script.r for å speile dette skriptet.r. Dette legger til støtte for parameterne i brukergrensesnittet ved å legge til if.exists anrop per brukerparameter.

    Tips

    Hvis du vil følge endringene i R-skript, søker du etter kommentarer:

    #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
    

    skript før og etter

    Du kan bestemme deg for ikke å vise parameterne for brukergrensesnittet, slik vi gjorde.

  5. Pakk visualobjektet på nytt ved hjelp av pbiviz package kommandoen, og prøv å importere det til Power BI.

Merk

Se PBIX og kildekode for nedlasting.

Tips

Her har vi lagt til parametere for flere typer (boolsk, numerisk, streng og farge) samtidig. Hvis du vil ha en enkel sak, kan du se dette eksemplet på hvordan du legger til én enkelt parameter.

Konverter visualobjekt til RHTML-basert visualobjekt

Siden det resulterende visualobjektet er PNG-basert, er det ikke responsivt å holde musepekeren over, kan ikke zoomes inn på og så videre, så vi må konvertere det til et HTML-basert visualobjekt. Vi oppretter en tom R-drevet HTML-basert visualobjektmal, og kopierer deretter noen skript fra det PNG-baserte prosjektet.

  1. Kjør kommandoen:

    pbiviz new funnel-visual-HTML -t rhtml
    cd funnel-visual-HTML
    npm install 
    pbiviz package
    
  2. Åpne capabilities.json , og noter "scriptOutputType":"html" linjen.

  3. Åpne dependencies.json , og noter navnene på de oppførte R-pakkene.

  4. Åpne script.r , og legg merke til strukturen. Du kan åpne og kjøre den i RStudio fordi den ikke bruker eksterne inndata.

    Dette oppretter og lagrer out.html. Denne filen er selvstendig (uten eksterne avhengigheter) og definerer grafikken i HTML-kontrollprogrammet.

    Viktig

    For htmlWidgets brukere er R-verktøy angitt i r_files-mappen for å konvertere plotly eller widget objekter til selvinnholds-HTML.

    Denne versjonen av R-drevet visualobjekt støtter source også kommandoen (i motsetning til tidligere typer visualobjekter), for å gjøre koden mer lesbar.

  5. Erstatt capabilities.json med capabilities.json fra forrige trinn, eller last ned capabilities.json.

    Pass på å beholde:

    "scriptOutputType": "html"

  6. Slå sammen den nyeste versjonen av script.r med script.r fra malen, eller last ned script.r.

    Det nye skriptet plotly bruker pakken til å konvertere ggplot-objektet til et tegneobjekt , og deretter htmlWidgets pakken for å lagre det i en HTML-fil.

    De fleste av verktøyfunksjonene flyttes til r_files/utils.r , og generateNiceTooltips funksjonen legges til for utseendet til det tegnede objektet.

    1

    2

    Tips

    Hvis du vil følge endringene i R-skript, søker du etter kommentarer:

    #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. Slå sammen den nyeste versjonen av dependencies.json med dependencies.json fra malen, for å inkludere nye R-pakkeavhengigheter eller laste ned dependencies.json.

  8. Rediger src/settings.ts på samme måte fra tidligere trinn.

  9. Pakk visualobjektet på nytt ved hjelp av pbiviz package kommandoen, og prøv å importere det til Power BI.

Merk

Se PBIX og kildekode for nedlasting.

Bygge flere eksempler

  1. Kjør følgende kommando for å opprette et tomt prosjekt:

    pbiviz new example -t rhtml
    cd example
    npm install 
    pbiviz package
    
  2. Ta kode fra denne presentasjonen og gjør de uthevede endringene:

    Uthevede endringer

  3. Erstatt malens script.r , og kjør på pbiviz package nytt. Nå er visualobjektet inkludert i Power BI-rapporten!

Tips og triks

  • Vi anbefaler at utviklere redigerer pbiviz.json for å lagre riktige metadata, for eksempel versjon, e-post, navn, lisenstype og så videre.

    Viktig

    GUID-feltet er den unike identifikatoren for et visualobjekt. Hvis du oppretter et nytt prosjekt for hvert visualobjekt, vil GUID også være forskjellig. Det er bare det samme når du bruker et gammelt prosjekt kopiert til et nytt visualobjekt, som du ikke bør gjøre.

  • Rediger aktiva/icon.png for å opprette unike ikoner for visualobjektet.

  • Hvis du vil feilsøke R-kode i RStudio ved hjelp av de samme dataene som i Power BI-rapporten, legger du til følgende i begynnelsen av R-skriptet (rediger variabelen 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)
    }
    

    Dette lagrer miljøet fra en Power BI-rapport og laster det inn i RStudio.

  • Du trenger ikke å utvikle R-drevne visualobjekter fra grunnen av med kode tilgjengelig på GitHub. Du kan velge visualobjektet som skal brukes som en mal, og kopiere koden til et nytt prosjekt.

    Prøv for eksempel å bruke det egendefinerte spline-visualobjektet.

  • Hvert R-visualobjekt bruker operatoren på inndatatabellen unique . Hvis du vil unngå at identiske rader fjernes, kan du vurdere å legge til et ekstra inndatafelt med en unik ID og ignorere det i R-koden.

  • Hvis du har en Power BI-konto, kan du bruke Power Bi-tjeneste til å utvikle et visualobjekt på farten i stedet for å pakke dem om med pbiviz package kommandoen.

Utforsk visualobjekter i html-kontrollprogramgalleriet for bruk i neste visualobjekt. For å gjøre ting enkelt, har vi opprettet et prosjektrepo for visualobjekter med over 20 interaktive HTML-visualobjekter å velge mellom!

Tips

Hvis du vil bytte mellom html-kontrollprogrammer, bruker du Formatinnstillinger-typen>>. Prøv det med denne PBIX-filen.

Slik bruker du et eksempel for visualobjektet

  1. Last ned hele mappen.
  2. Rediger script.r og dependencies.json for å beholde bare ett kontrollprogram.
  3. Rediger capabilities.json og settings.ts for å fjerne velgeren Type .
  4. Endre const updateHTMLHead: boolean = true; til false i visual.ts. (for bedre ytelse)
  5. Endre metadata i pbiviz.json, viktigst av alt feltet guid .
  6. Pakk om og fortsett å tilpasse visualobjektet etter ønske.

Skjermbilde som viser seks kontrollprogrammer som er beskrevet tidligere i denne artikkelen.

Skjermbilde som viser ytterligere seks kontrollprogrammer som er beskrevet tidligere i denne artikkelen.

Merk

Ikke alle kontrollprogrammer i dette prosjektet støttes av tjenesten.

Hvis du vil ha mer informasjon, kan du se flere Power BI-opplæringer, utvikling av et sirkelkort for Power BI og R-visualobjekter.

Finn ut hvordan du utvikler og sender visualobjekter til Office Store (galleri), eller hvis du vil ha flere eksempler, kan du se presentasjon av R-skript