SVG Visuals Generator voor Power BI

Genereer inline SVG visuals als DAX measures voor Power BI. Kies een chart type, pas kleuren en parameters aan, bekijk de live preview en kopieer de DAX-code. Werkt in Table, Matrix, Card en Image visuals, geen custom visual nodig.

Data Bar
Progress Bar
Bullet Chart
Actief Status Pill
Lollipop
Sparkline
Dumbbell
Overlapping Bars
Waterfall
Preview
CategorieWaardeSVG
DAX Measure

Implementatie in Power BI

SVG measures werken in Table, Matrix, Card (nieuw) en Image visuals. Stel dataCategory in op ImageUrl en dataType op Text. Gebruik extension measures in reportExtensions.json (PBIR) zodat de measure in het rapport leeft, niet in het semantic model. Stel in de visual imageHeight in op minimaal 25px voor leesbaarheid.

Wanneer gebruik je SVG measures?

SVG measures zijn de eenvoudigste manier om inline grafieken toe te voegen aan een Power BI rapport zonder een custom visual te importeren. Ze renderen direct in native visuals, zijn gemakkelijk te versieëren via source control en voegen geen extra afhankelijkheden toe aan je semantic model. Typische use cases: sparklines in een tabel, data bars naast KPI's, bullet charts voor target tracking en status pills voor workflow-indicatoren.

Voor complexe, interactieve visualisaties met cross-filtering en tooltips is Deneb (Vega-Lite) een betere keuze. Voor statistische grafieken zoals distributies of regressies is Python of R krachtiger. SVG measures schitteren in de niche ertussen: lichte, declaratieve, sneller ladende inline grafieken.

DAX patroon: VAR-structuur

Elke gegenereerde measure volgt een vaste VAR-structuur met vier secties: CONFIG (input measures, scope, kleuren), NORMALIZATION (schaal waarden naar SVG-coordinaten), SVG ELEMENTS (een VAR per <rect>, <line> of <text>) en ASSEMBLY (concatenatie in render-volgorde). Deze structuur maakt de measure leesbaar, aanpasbaar en makkelijk te debuggen. Meer achtergrond over schrijfstijl en patronen vind je in het artikel DAX measures vs calculated columns en CALCULATE uitgelegd.

Veelgestelde vragen

Hoe sorteer je een kolom met SVG measures?

De gegenereerde measures bevatten een onzichtbaar <desc>-element met FORMAT(_Actual, "000000000000"). Power BI sorteert tekstkolommen alfabetisch, dus door de waarde gepadd met nullen in de SVG-string op te nemen, sorteer je de kolom alsof hij numeriek is.

Waarom de HASONEVALUE guard?

In tabel- en matrixtotalen zit de measure in meerdere rijen tegelijk. Zonder HASONEVALUE op de groepskolom rendert de SVG met de geaggregeerde waarde, wat meestal een rare of stuk gebroken grafiek oplevert. De guard retourneert een lege string op subtotalen en grand totals.

Kan ik SVG measures gebruiken voor performance-kritieke rapporten?

Ja, mits je het simpel houdt. SVG measures worden per rij geevalueerd, dus elke extra DAX-variabele kost tijd. Houd CONCATENATEX-loops kort, vermijd geneste CALCULATE-calls waar mogelijk en rond coordinaten af op hele getallen. Voor grote tabellen (5000+ rijen) overweeg je paginering of andere performance-optimalisaties.

Wat is het verschil met een measure in het semantic model?

Extension measures in reportExtensions.json leven naast het rapport, niet in het dataset. Ze verschijnen in het rapport-veldenpaneel maar niet in andere rapporten die hetzelfde model gebruiken. Dit houdt visualisatie-logica gescheiden van business-logica en voorkomt dat SVG-code in productie-datasets terechtkomt.

Meer Power BI tools en kennis

Andere gratis tools en artikelen die goed combineren met deze generator: