Power BI
Beginner 12 min read Power BI

Visualizations in Power BI

Match the visual to the question, not to the menu

Power BI ships a core visual library plus a matrix of custom and R/Python visuals. Choosing the right visual for the question is a design skill that reports live or die by.

visualizationsmatrixcustom visualsR visualsinteractivetooltipsdrilldown
Before we start

What you will learn

  • Choose an appropriate core visual per question type
  • Use matrix, tooltip pages and drill-through correctly
  • Govern custom visuals from AppSource
Introduction

What is this?

Power BI includes a core visual library — bar, line, pie, scatter, matrix, cards, maps, tables, slicers — plus a marketplace of certified custom visuals and the ability to render R and Python visuals. The design question is never 'what looks good' but 'what does the user need to see to make a decision'.

Motivation

Why do you need it?

  • A matrix with drill-down replaces five separate tables.
  • Custom visuals cover gaps like waterfall, donut-bullet and network graphs without leaving the tool.
  • Well-chosen visuals remove the need for separate 'analysis addendums'.
  • A consistent visual language keeps reports scannable and trustworthy.
Think about it

Mental model

Imagine

A photographer's lens choice

Think of

Chart selection

A 50mm lens isn't 'better' than a macro lens — each fits the subject. Time series -> line, ranking -> sorted bar, share -> small multiples, distribution -> histogram. Choose the lens for the subject, not the most popular one.

Mechanics

How it works

  • Drag fields to values and axes; Power BI proposes aggregates and formats.
  • Visuals share the model's filter context across the page by default.
  • Drill-down expands a hierarchy; drill-through jumps to a detail page scoped to the clicked row.
  • Tooltip pages add rich hover context without cluttering the main canvas.
  • Custom and R/Python visuals run inside the render engine and obey the same filters.

From question to visual choice.

Trend over time?
Compare categories?
Share of whole?
Two numeric series?
Large cross-tab?
Hands-on

Examples

Building a drill-down matrix

Building a drill-down matrix
1. Add a Matrix visual bound to a fact 'amount'.
2. Rows: Category, then Product (nested).
3. Turn on drill-down (down arrow icon).
4. Values: Total Revenue measure; set decimal 2.
5. Right-click > Show as a table to export.

The matrix answers 'category then product' out of the box, drill-down expands hierarchy on click, and formatting keeps totals readable without extra visuals.

Real world

In production

  • An e-commerce team uses a matrix with region x category drill-down as the primary view and tooltip pages for detail — one report page instead of seven.
  • A supply team renders a waterfall visual (from a certified custom visual) for inventory deltas.
  • A data science group uses Python visuals to render a scikit-learn confusion matrix inside the report.
Guidelines

Best practices

  • One question per visual; if it answers two, split it.
  • Sort bars descending by default; reserve pie charts for at most a handful of slices.
  • Prefer tooltips and drill-through over cramming every column on the page.
  • Only add custom visuals that are certified and reviewed; document why each is used.
Watch out

Common mistakes

  • Defaulting to pies and 3D effects that obscure exact values.
  • Letting slicers pile up so the page no longer filters predictably.
  • Installing every custom visual, bloating the report load time.
  • Crowding a page to 'show all data', defeating the question-driven layout.
Root cause analysis

Common issues

Error
A custom visual shows a blank panel
Root cause

The visual version is older than the model or the visual lost permissions

Fix

Update it from AppSource, re-add it, or replace with a core equivalent.

Error
R/Python visual returns 'no data'
Root cause

The R/Python runtime is missing or the script errored

Fix

Check the R/Python engine setup in Options and view the error in the visual's message panel.

Error
Two slicers interact confusingly
Root cause

Default interaction lets every slicer filter every visual

Fix

Turn off 'edit interactions' for specific visuals so slicers only affect the intended ones.

When things break

Debugging tips

  • Hover a visual and check its filter context via the 'see records' right-click.
  • Open performance analyzer and find which visual queries the model fastest and slowest.
  • Test each visual with a slice of data before finalizing its number format.
  • Count the distinct values you propose to plot—more than 12 slices usually needs a different visual.
Interviews

Interview checkpoint

Practice

Hands-on lab

Design a Question-Driven Page
25 min · beginner
In progress
Objectives
  • Pick a question and choose a matching visual
  • Add a matrix with drilldown
  • Wire a tooltip page
  • Govern the custom visual set

Design a Question-Driven Page

25 min · beginner

0/5 steps
0%
sandbox · Linux sandbox
$
Try these commands
Test yourself

Quick quiz

0/2
1

Which visual is best for showing how a metric changed over quarters?

2

R/Python visuals ignore report filters.

Go deeper

Official documentation