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
Få et Microsoft Fabric-abonnement. Eller registrer deg for en gratis prøveversjon av Microsoft Fabric.
Installer pbiviz-verktøy.
Bygg et R-skript med semantisk modell
Last ned et minimalt R-skript og datatabellen, dataset.csv.
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
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.Rediger script.r-fil og erstatt innholdet med det forrige skriptet.
Rediger capabilities.json og erstatt strengen
Values
meddataset
. Dette erstatter navnet på «Rolle» i malen for å være som i R-kode.(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.
Pakk visualobjektet på nytt ved hjelp av
pbiviz package
kommandoen, og prøv å importere det til Power BI.
Forbedre R-baserte visualobjekter
Visualobjektet er ennå ikke brukervennlig fordi brukeren må vite rekkefølgen på kolonnene i inndatatabellen.
Dele inndatafeltet
dataset
i tre felt (roller):Population
,Number
ogTooltips
Rediger capabilities.json og erstatt
dataset
rollen med de tre nye rollene, eller last ned capabilities.json.Du må oppdatere inndelinger:
dataRoles
ogdataViewMappings
, som definerer navn, typer, verktøytips og maksimalt antall kolonner for hvert inndatafelt.Hvis du vil ha mer informasjon, kan du se funksjoner.
Rediger script.r for å støtte
Population
,Number
ogTooltips
som inndatarammer i stedetdataset
for , eller last ned script.r.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
Pakk visualobjektet på nytt ved hjelp av
pbiviz package
kommandoen, og prøv å importere det til Power BI.
Legg til brukerparametere
Legg til funksjoner for brukeren for å kontrollere farger og størrelser på visuelle elementer, inkludert interne parametere fra brukergrensesnittet.
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
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
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
Du kan bestemme deg for ikke å vise parameterne for brukergrensesnittet, slik vi gjorde.
Pakk visualobjektet på nytt ved hjelp av
pbiviz package
kommandoen, og prøv å importere det til Power BI.
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.
Kjør kommandoen:
pbiviz new funnel-visual-HTML -t rhtml cd funnel-visual-HTML npm install pbiviz package
Åpne capabilities.json , og noter
"scriptOutputType":"html"
linjen.Åpne dependencies.json , og noter navnene på de oppførte R-pakkene.
Å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 å konvertereplotly
ellerwidget
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.Erstatt capabilities.json med capabilities.json fra forrige trinn, eller last ned capabilities.json.
Pass på å beholde:
"scriptOutputType": "html"
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 deretterhtmlWidgets
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.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
Slå sammen den nyeste versjonen av dependencies.json med dependencies.json fra malen, for å inkludere nye R-pakkeavhengigheter eller laste ned dependencies.json.
Rediger src/settings.ts på samme måte fra tidligere trinn.
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
Kjør følgende kommando for å opprette et tomt prosjekt:
pbiviz new example -t rhtml cd example npm install pbiviz package
Ta kode fra denne presentasjonen og gjør de uthevede endringene:
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.
Galleri for HTML-kontrollprogrammer
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
- Last ned hele mappen.
- Rediger script.r og dependencies.json for å beholde bare ett kontrollprogram.
- Rediger capabilities.json og settings.ts for å fjerne velgeren
Type
. - Endre
const updateHTMLHead: boolean = true;
tilfalse
i visual.ts. (for bedre ytelse) - Endre metadata i pbiviz.json, viktigst av alt feltet
guid
. - Pakk om og fortsett å tilpasse visualobjektet etter ønske.
Merk
Ikke alle kontrollprogrammer i dette prosjektet støttes av tjenesten.
Relatert innhold
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