![Data Visualization in Power BI and Beyond](/img/default-banner.jpg)
- 22
- 33 226
Data Visualization in Power BI and Beyond
Poland
Приєднався 1 лис 2022
On this channel, I discuss data visualization in Power BI, highlighting Power BI's strengths and offering workarounds for its limitations. I dissect a simple pie chart to explain when it's a good choice and when it's not and I demonstrate how to use advanced techniques, such as Vega visualization grammar or SVG charts generated using DAX measures and calculated groups. Although I explore data visualization beyond Power BI and aspects of Power BI beyond data visualization.
Whether you're a novice just starting with Power BI or a seasoned developer, this channel provides insights to expand your understanding of Power BI and enhance your data visualization skills.
Whether you're a novice just starting with Power BI or a seasoned developer, this channel provides insights to expand your understanding of Power BI and enhance your data visualization skills.
HTML/CSS in core Power BI visuals
This video showcases another method to push the boundaries of what you may think is achievable in Power BI. I demonstrate how you can embed HTML/CSS content into core Power BI visuals like the Card (new), Table, and Matrix, without the need for custom visuals such as HTML Content.
Live report: www.powerofbi.org/wow2024-week-12/
PBIX file: github.com/avatorl/PowerBI-SVG/tree/main/html-css
The visualization is based on Workout Wednesday 2024 Week 12 challenge: workout-wednesday.com/pbi-2024-w12/
Live report: www.powerofbi.org/wow2024-week-12/
PBIX file: github.com/avatorl/PowerBI-SVG/tree/main/html-css
The visualization is based on Workout Wednesday 2024 Week 12 challenge: workout-wednesday.com/pbi-2024-w12/
Переглядів: 1 016
Відео
Power BI Magic: SVG paths in Deneb and core Power BI visuals. Draw almost anything in real time!
Переглядів 6185 місяців тому
In this video, I demonstrate an advanced technique for generating SVG paths to draw complex visual elements inside Deneb custom visuals for Power BI and inside Card (new) and Table or Matrix visuals. The same technique can be applied to both Deneb and core visuals. In the case of Deneb, a Vega expression generates Vega paths, while in the case of core visuals, a DAX measure performs a similar j...
Embedding Vega data visualization into a Power BI report using the Deneb custom visual
Переглядів 5695 місяців тому
In this video I'm embedding an existing Vega data visualization into a Power BI report using the Deneb custom visual. 00:00 Intro (existing Vega visualization) 00:23 Import and add Deneb custom visual 01:07 Prepare the Data and add to the visual 02:48 Insert Vega specification and bind the "dataset" 09:01 Additional data transformations of the "dataset"
Vega Bar Chart Example + Magic! = IBCS-Styled Chart for Power BI
Переглядів 9935 місяців тому
In this video I demonstrate how to convert a basic Vega bar chart example from Vega website into an IBCS-styled column chart for Power BI. The chart can be embedded into Power BI using Deneb custom visual. Watch more videos about Vega and Deneb: ua-cam.com/play/PL6qbun6zBOG0GlXCWFfWr8wW8VgzQgKZJ.html Watch more videos about IBCS-styled charts in Power BI: ua-cam.com/play/PL6qbun6zBOG2OxTNweOq7Y...
Creating a custom data visualization using Vega visualization grammar - Warming Stripes
Переглядів 6126 місяців тому
In this video, I demonstrate how to create a custom data visualization using the Vega visualization grammar. An example I'm reproducing in the video is my implementation of the Warming Stripes. Example Vega JSON code: github.com/avatorl/Deneb-Vega/tree/main/warming-stripe 00:00 Introduction 01:55 Creating Vega specification 06:38 "data" - loading data from CSV 08:09 "scales" - data values to pi...
Deneb/Vega Tutorial: Creating a Bar Chart
Переглядів 1,1 тис.6 місяців тому
In this video, I explain an example of a bar (column) chart created using the Vega visualization grammar. This is how you can start learning Vega - by analyzing and editing existing examples. Vega Bar Chart Example: vega.github.io/vega/examples/bar-chart/ Deneb Vega Help: github.com/avatorl/Deneb-Vega-Help
Deneb and Vega - How to Start Learning Them and Why?
Переглядів 1,9 тис.6 місяців тому
Vega is a visualization grammar, or a language, that allows you to create highly customized data visualizations. Deneb is a certified custom visual that lets you embed Vega visualizations into Power BI reports. In this video, I demonstrate some examples of Deneb/Vega data visualization to answer the question of why we need Deneb and Vega and to inspire you to start learning them. I also explain...
SVG Map Embedded into Power BI Matrix Visual
Переглядів 1,3 тис.6 місяців тому
Learn how to embed an SVG map (such as maps of the World, Europe, the USA, or any other country) into a Power BI Matrix (Table) visual. Bonus 1: The same SVG map embedded into a New Card Visual. Bonus 2: The same SVG map embedded into Deneb custom visual. Bonus 3: PBIX file with all solutions explained in the video. github.com/avatorl/PowerBI-SVG/tree/main/svg-maps Bonus 4: An incredible source...
IBCS-styled Column Chart in Power BI Matrix Visual | It's NOT a Custom Visual !!!
Переглядів 2,6 тис.10 місяців тому
How can you create an IBCS-styled column chart in Power BI using just the built-in Matrix visual and a single DAX measure? What does the DAX measure used to generate the chart do? How can you create a three-line title (IBCS-recommended title layout) in Power BI visual? Why are the columns in this IBCS-styled chart either solid black, hatched, or outlined? What do the gray triangles represent? W...
Revolution in Power BI data visualization. Highly customized charts based on native matrix visuals.
Переглядів 2,5 тис.10 місяців тому
This video will show you how to create an IBCS-styled column chart small multiple. All you'll need is a native Matrix visual and a single DAX measure in Power BI. The matrix that provides an explanation of your data before you begin to focus on the numbers displayed on the screen. Green (green-blue) is good, red is bad. Large red is really bad. Filled is a fact. Outlined is a plan. Simple, clea...
Want to Upgrade Your Power BI Matrix into an Advanced IBCS Style Data Visualization? Here's How!
Переглядів 12 тис.11 місяців тому
In this video, I explain how to create an advanced visualization based on the International Business Communication Standards (IBCS) using just the native matrix visual in Power BI. There's no need for the Deneb custom visual or Vega and Vega-Lite coding. I'll demonstrate a few simple DAX measures that can transform a basic matrix into an advanced visualization, embedding three different charts ...
Single Visual Power BI Dashboard | Real World Fake Data - HR Cross-Functional Mobility
Переглядів 1,5 тис.11 місяців тому
In this video, I talk about a dashboard I created for the Real World Fake Data - HR Cross-Functional Mobility challenge. The entire dashboard was created using a single Deneb custom visual for Power BI and over 1700 rows of Vega JSON code. I briefly explain the code behind the dashboard, the data, and then how the dashboard actually helps to explore and explain the data. I show how interactive ...
Choropleth Map? There is a better alternative
Переглядів 40811 місяців тому
Choropleth Map? There is a better alternative
really really really really thank you!!!
Thank you for this amazing video
This is really nice
Thank you so match I’ve suscribed ! Du you think it’s possible to have multiple card sales team at ONE cell in the matrix ? may be by using something like CONCATENATEX 🤔
Gracias por compartir
Thank you 👍!!
Brilliant 👏
Thanks `boss
thank you!
I replaced the base64 images with external urls but those images would not load :(
Awesome content, top quality! Thanks a lot
Thanks for sharing your valuable knowledge! Could you explain how to make these maps clickable (interactive)?
Not possible. At least for now. Table, Matrix, Card (new) visuals block mouse events in SVG images... For clickable maps, use IconMap or Deneb visuals.
Very interesting approach to this curious chart. It’s a pity that the sound is not very good, but it’s not an obstacle to understanding the explanation. Thank you!
Thanks. Regarding the sound: I'm sorry if it's not very good, I probably shouldn't record and edit videos in the middle of the night.
@power-of-bi What could help is to create the audio stream separately. Typically a smartphone with a recording app put in front on your desk pointing to your mouth would give sufficient results. In video post production, just put this in as a separate audio layer. Works typically totally reliable and you do not need any noise cancelling / auto-ducking features in your video editing software which can also give these odd results. Thanks for the otherwise great content!! 🙏🙏
@@businessinsights_AlexRobe Thank you! The audio is from a better microphone than any smartphone has, but I missed an issue with mic settings... I believe I've already fixed the problem. Publishing a new video today...
Pure Genius!!
WOW! Just beautiful. The decomposition of the SVG was incredibly informative. Thanks for doing this.
great video Andrzej Leszkiewicz - appreciate all your videos!
Who achieved this customized table on powerbi, i need help asap
Keep going, Andrzej. Great job!
Andrzej, you showed how to work with two datasets that originate from the same source. I wonder is it possible to work with several dataset that are not originated from the same root data source? If yes it would be great if you covered how to in your future videos.
I don't quite understand why we use in the mark of the labels the data source "from": {"data": "rect-ac"}, if then the fields we are going to use "month" and "ac" are also present in the original table "from": {"data": "table"}, But the truth is that I'm testing it and it doesn't work... I would understand it better if we were to use a transformation of the original data that we had done in "data": "rect-ac", but we haven't done it.
Thanks. Really great question. Well, there is no a single way to create a visualization. It's perfectly OK to use the same data source for the rectangles and for the text labels. And in many cases there will be no meaningful difference. In this example you can replace {"data": "rect-ac"} with {"data": "table"} and then remove 'datum.' from the "field" properties within "encode", because as you have mentioned we don't use fields generated by Vega for the "rect-ac" table (such as xc, y, width, height), we still use the original "table" fields stored in the datum field of the 'rect-ac' table. Or you can keep {"data": "rect-ac"}, remove the "scale" and "band" properties and use "field: "x" instead of "field": "datum.month", "field": "y" instead of "field": "datum.AC" and "field": "datum.AC" for the "text". In more advanced visualizations using a table like "rect-ac" (a table created by adding "name" property to a mark) will be useful to avoid repeating some heavy calculations multiple times (assuming there was some tricky formula to calculate "x", "y", "width", "height", "fill" or any other property of one mark (such as "rect-ac") and you need the same for the other mark (such as "text" for the text label) . In this case it doesn't really matter. Whatever piece of code was easier to copy paste from the previously created marks and modify. Thanks again. I'll talk about this in the future videos.
Thank you very much for your clarification, Andrzej! These step-by-step videos with detailed explanations are very helpful.
How can we embed this into Deneb
This will be a subject of the next video. Thanks.
ua-cam.com/video/oun2V09Dbt8/v-deo.html
Wow this is awesome Andrzeg. But how we can use the same in Power BI Inside Deneb
Thanks. Import the .csv data file into Power BI and load into Deneb "dataset" deneb-viz.github.io/dataset. I'll make a video.
ua-cam.com/video/oun2V09Dbt8/v-deo.html
👍.Please share the .pbix for reference.
You dint show how you wrote the create table command. I have svg file but dnt know the intermediate steps Please help me
"I totally love it! I created something similar using the native Power BI bar and conditional color, where each bar represents 1 minute of data from a SAG mill. The color bar ranges from 0 to the maximum, and the entire X-axis spans 24 hours, totaling 1440 bars. The issue is that with a large amount of data, the native bar chart starts to sample the data, resulting in spaced-out bars instead of a continuous representation. My intention was to have it resemble a heatmap, but currently, the bars appear disjointed.
Muchas gracias por el video, agregado a favoritos...Saludos desde Perú.
Thank you for the comment
Finally we have some one who is posting some serious Vega work and teaching the world to be "Viz"ards :D. Thank you that you exist!
Thanks for your contribution and providing this introductionary video - It encouraged me to try Denab and Vega in my Power BI works :)
Thank you for the comment. Such comments encourage me to make more videos.
We need that, thanks
Thank You for this video Andrzej. Very Useful.
Hi Andrzej, Great admirer of your work. Thank you for what you have provided to the community. I am a Vega beginner myself. I love to have more control over my charts so, I have preferred VEGA because D3.js has a long learning curve. I have 1 question though, I saw all your complex charts that you have built, will I be needing JavaScript to create such charts ?
Vega visualizations (including interactive and animated ones) can be created using Vega JSON only. No JavaScript required. Basic JS may be required to embed Vega visualizations into a web page with some additional functionality, for example, Vega examples on my website are being generated using Vega JSON code stored in my Github repository. That required a few rows of JS code.
@@power-of-bi Great. Thank You. Hoping to learn a lot from you.
I like the series. Thanks, Andrzej.
Great work. Maybe you can show a video where you build one step by step br
Thanks. I'll do that soon. I'll start from a simple example (basic column chart). Then, in the following videos will go through other more and more advanced examples.
ua-cam.com/video/HvIxqEC2_TY/v-deo.html
Sounds great! Great initiative! I've tried sometimes some graphics with Deneb but with Vega-Lite, but it hasn't been easy. I don't know if it's a good idea to go with Vega, or if it's better to try Vega-Lite first, which seems easier...
For some reason most people prefer Vega-Lite (less code?). From my point of view (but maybe it's skewed by the fact that I already know Vega) Vega is more descriptive and straightforward. I mean, look at the Vega mark. It's clearly describes what you see on the screen ("rect"), what data table it is based on ("table"), where it starts and where it ends (x, y, y2 and width properties), how values are being projected onto the plot (using xscale and yscale) and what color it is filled with ("steelblue"). Vega: "marks": [ { "type": "rect", "from": {"data":"table"}, "encode": { "enter": { "x": {"scale": "xscale", "field": "category"}, "width": {"scale": "xscale", "band": 1}, "y": {"scale": "yscale", "field": "amount"}, "y2": {"scale": "yscale", "value": 0}, "fill": {"value": "steelblue"} } } ] And Vega-Lite? "mark": "bar", "encoding": { "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, "y": {"field": "b", "type": "quantitative"} } What? Everything is based on default setting applied behind the scene.
@@power-of-bi Very good example to appreciate the difference. Thank you.
Gracias por compartir.
Is it realized by SVG?
An HTML table formatted and animated using CSS, then embedded into an SVG namespace using the foreignObject element. This was implemented in the New Card visual.
Share a video how to prepare this pls
Awesome Work as always @Andrzej
That's very useful. Thanks so much for sharing.
how I can learn vega as I am well versed in vega-lite but i feel vega has a bit steeper learning curve for me , pls provide you valuable suggestions for learning vega effectively. Thank you!!
For me the best way to learn Vega was by analyzing the code of the official examples vega.github.io/vega/examples/ and adjusting the code to see how my changes affect the visualization and by reading the documentation vega.github.io/vega/docs/
Please make more about chart
This is next-level pioneering work. The only issue I have when attempting to implement is having the scaling of the base numbers identical to the scaling of the absolute variance numbers, which is a must for IBCS. Any ideas on how to accomplish this identical scaling?
Use absolute values (not variance) to calculate scale ratio and then apply this scale to the absolute variance.
Full video is not available in your youtube channel. Please share tutorial link
I'm sorry that it takes for me more time than you would expect, but I'm actually have just started a series of video about Deneb and Vega. In the first video ua-cam.com/video/yIcBpbui7U8/v-deo.html you'll find some information about what resources you can use to learn, what people you can contact to ask for help. In the next videos I'll talk more about real examples starting from the simplest ones (so it's going to be a tutorial).
A big thank you my friend, with your excellent tutorials you saved me so much time! Also a great inspiration on how to design and implement SVG code. Thanks!
I'm glad the video helped you! Thanks for the comment.
Can I achieve this look with DENEB? In a way where I can put the measurements in the DENEB configuration itself and it generates the look for me?
Yes you can. See github.com/avatorl/Deneb-Vega/tree/main/ibcs-three-tier-chart
Hi, this is amazing. Is it possible to make this into an income statement with hierarchy. The problem I am having is I want it to be only a few lines like gross sales, total cost of sales, and operating income. Then from there you can expand to further levels like operating expenses, other income, etc. the issue is it is ragged data and some income statement lines go down 3-4 levels while others only go down one level. The you have to expand it 4 times and there are blank rows. Any help would be amazing!
I've built an income statement with SVGs in a Matrix visual, but for now just a basic one, not a large ragged hierarchy with expandable rows. Regarding the hierarchies see www.daxpatterns.com/parent-child-hierarchies/.
Fantastic, thank you!
Congratulations. Your development is incredible.
Good stuff, going to use this in my portfolio dashboard! Thanks for sharing.
You're welcome!
Congrats for such an interesting video, Andrzej! Very helpful information. I have one question, maybe you can kindly provide some insights on it: is it possible to create a Gantt chart that shows two bars in one cell (one bar for baseline dates, and the second for current dates) with the length of the bars being the elapsed time between dates using SVG and measures in the matrix visual? If so, do you think this can be part of an upcoming video? Thanks!
Thanks. That's a great question. It's possible to draw multiple bars in a cell. The question is what are you going to have in the columns. It makes sense to have a date per column, therefore what you need is a either blank cell or a cell with 100% column width bars. Although, there will be an issue, you'll have non-removable margins around the SVG images (empty space between the columns). If ability to select a single date is no important you can have put for example weeks into the columns and wider (up to 512 pixel) SVG images to draw bars with variable length (to cover start-end date period).
@@power-of-bi Thanks for the fast response, Andrzej! I really appreciate it! It seems like its possible to prepare such Gantt chart, but there are some workarounds to be considered. I am still a newbie using PBI and will investigate more according to your feedback. Greetings from Poland! ;)
Fantastic work! 🙌
Great work Andrzej! It would be great if the chart could be resized automatically based on the matrix size. Then we could fit 8 of these amazing IBCS charts on the same page. Also in the measure if you could add a VAR to flip the chart to a horizontal bar instead - or perhaps we need to code another measure for that. I would have considered moving all total texts above the columns to make it less cluttered. For example for July it gets tricky to see the top of the bar etc
Thanks for you comment. Answers to the questions: 1) DAX measure can't know anything about the matrix size (individual image width and height), you'll need to change options on the Format pane and then to edit corresponding variables in the measure manually 2) Columns width is based on Font Size. So for smaller chart you'll also want to edit font size variable. 3) Flipping between horizontal and vertical definitely requires different measures (see another video for the vertical chart). I see no problem here, they have different use cases, one for time, one for structural analysis. 4) Data labels are for AC (and FC) column, not for PL columns. I believe we shouldn't place AC data label right above PL (outlined) column. But it's OK to just hide labels in certain cases to avoid overlapping.
@@power-of-bi Add your Variance one level back. It will look a bit better: VAR _SVG = _SVG_URLPrefix & _SVG_Open & _SVG_Variance & _SVG_PL & _SVG_ACFC & _SVG_PY & _SVG_DataLabel & _SVG_PeriodLabel & _SVG_TextStyle & SVG_HatchedPattern & _SVG_Close Also for extra clarity consider setting your FC triangle black VAR _triangleFill = IF ( _MainScenario = "FC", _ColorBlack, _ColorGrey)
@@apbreports Thanks. 1) I understand what it will change. Makes sense. Great tip. I'll try. 2) I'm sorry, I see your point (higher contrast), but this proposal contradicts IBCS recommendations (and visual perception principles). It will ruin the entire scenarios unification. Things that are the same should look the same. Triangles are grey for a purpose. Grey fill color = previous year data. IBCS, first of all, is not about 'looks better', but about 'works better'. Comparison with the triangles is secondary task anyway, they are not critically important.
Strange. I was 100% sure I've already answered here... I'll try again. Thanks for the comment. 1) I understand what you're talking about, makes sense, I'll give it a try 2) I see your desire to increase visual contrast. But that will contradict visual perception principles and IBCS recommendations, ruin scenario unification and make the chart unclear. Thing that are the same (previous year data, grey triangles) should look the same. And grey color is not random. It has a specific meaning here and shows older data (previous year) than black AC. Every color (and hatching) is meaningful.
@@power-of-bi I understand about the triangle contrast. Best to keep to the standard of course:)
Hi, Andrzej. Great job. One thing still is bothering me. The visualization you presented looks perfect until the displayed numbers are low or equal 999. What if the sales vary from 500k per month to 10000K? In that case the width of the labels might be wider than the width of the columns, which won’t look well. You might have thought of that already. What were your thoughts on that account? Will you make your table wider and put up with a horizontal scroll bar? Will you do the opposite?
Thanks. First of all, it's just a demo so far, not designed and not tested to handle all possible situations automatically. But, what you're asking about is already handled by IBCS. And it's very logical and straightforward solution - we don't really need to see more than 3 digits on data labels on a chart. 500 (k) and 10 000 (k) can be replaced with 0.5 (m) and 10.0 (m). And category with (period or month in this case) and column width (which is 2/3 of category width) is based on font size to get perfect composition of the columns and labels. a scroll bar in a chart? never!