Udvalgt arbejde · 02 / Egne visualiseringer
Diagrammer, vi måtte bygge.
Power BI kommer med et fast sæt diagrammer. Vores var ikke iblandt, så jeg byggede nogle selv og stod for den tekniske retning på resten: seks egne visualiseringer indtil videre, et body-map-heatmap, et søjlediagram, en måler, en stablet ændringssøjle og KPI-kort, alt i TypeScript. Bygget om herunder, live.
Om eksempeldata. Alle tal, datoer, skadesantal, procenter, tendenser og sammenligninger på siden er opdigtede eksempeldata, lavet udelukkende for at vise visualiseringerne. De afspejler ikke rigtige personer, hændelser, organisationer eller forretningsresultater.
INTERAKTIV DEMOVælg en periode. Se mønsteret ændre sig.
Kort fortalt
En custom-visualisering er et lille program, Power BI kører inde i rapporten: den rækker din kode dataene og boksens størrelse, og din kode tegner pixlerne.
Det er kode, ikke en skabelon
En TypeScript-klasse, der implementerer ét interface. Ingen træk-og-slip. Hver pixel er tegnet med vilje.
01 · IVisual · TypeScriptPower BI rækker den data
Du erklærer de felter, du accepterer; værten former dataene og sender dem ind ved hver ændring.
02 · capabilities · dataViewDu tegner pixlerne
Ud fra dataene og viewporten lægger koden SVG ud: søjler, stier, etiketter, et helt statistikpanel.
03 · SVG · dit layoutDet leveres som én fil
Én enkelt .pbiviz: kode, styles og ikon zippet sammen, importeret i en hvilken som helst rapport.
Sådan virker det
Power BI taler. Din kode tegner.
Bygget én gang. Så affyres update() ved hver ændring af data, størrelse eller indstilling. Kør loopet
constructor
Værten bygger visualiseringen og rækker DOM-elementet videre. Du sætter dit <svg> op.
data / størrelse / indstilling ændres
Nogen filtrerer, ændrer størrelse eller justerer en formatkontrol.
update(options)
Værten kalder dit update() med friske options.
options.dataViews[0]
Du trækker de omformede data og de aktuelle indstillinger ud.
render() → SVG
Ryd lærredet, gentegn i den nye størrelse.
bodyRegion-gruppering + injuryCount-måling kategorisk dataView specialtegnet SVG.
categories[] + values[]
Visualisering ét · skades-body-mappetEksempeldata
Skader, kortlagt på en krop.
To felter ind: en kropsregion og et skadesantal. Hver region farves på en femtrins-skala; panelet samler dem i grupper og fremhæver de værste. Klik på en region for at fokusere på den
Skader efter kropsgruppe
Bånd: 1–5 · 6–15 · 16–40 · 41+, alle format-pane-farver. Dette er prototypen. Dens leverede tvilling bodyInjuryHeatmap bytter båndene ud med en glidende min→max-gradient, kender venstre fra højre og kobler Power BI-selektion, krydsfremhævning og tooltips på.
Dataene bag det
To felter ind. Et billede ud.
Den erklærer, hvad den accepterer: én gruppering, ét mål. Power BI omformer rapporten til en kategorisk dataView. Slå en række til og fra, hold øje med dataView
dataViewhvad update() modtager: categorical
Visualisering to · søjlevisualiseringenEksempeldata
Et søjlediagram, der gør det, det indbyggede ikke vil.
De detaljer, det indbyggede søjlediagram springer over, hver især en kontrol i format-panelet. Skift i panelet. Diagrammet følger med
Hvor panelet kommer fra
Erklær en kontrol. Power BI tegner panelet.
Du bygger aldrig panelet i hånden. Erklær hver egenskabs type; værten renderer kontrollen. Vælg en type
En boolean bliver en kontakt og optræder i din indstillingsmodel som true / false.
Visualisering tre · halvcirkelmålerenEksempeldata
På mål, med ét blik.
Én værdi, tre tilstande. Bue, tal og status opdateres sammen. Træk i værdien
Min/maks, zoner og markører er alle format-panel-kontroller.Eksempeldata
Også på hyldenEksempeldata
Samme instinkt, et par gange til.
To mere: en stablet søjle, der annoterer sin ændring mellem perioder, og en stribe KPI-kort. Prik til dem
Stablet søjle + ændring
v3.5.8 · signaturforklaring · drilldown · ændringsdeltaerMultiCard
v1.3.2 · KPI-kort · række eller kolonneIteration
Én god version er i virkeligheden seks.
Hver udgivelse tilføjede én ting, en rapport bad om. Den gamle pakke blev aldrig overskrevet, kun afløst. Gå gennem versionerne
Values-rollen tager både et mål (measure) og en gruppering, så “Opsummer ikke” giver de rå kategoriværdier i stedet for en tvungen sum.
I tal
Familien, talt op.
Begge i rå SVG på powerbi-visuals-API'et. Ingen D3-hjælpere, ingen tredjeparts-charting. Hver farve, font og kant er en format-panel-kontrol.