Power BI Lesson 42 – Visual Formatting | Dataplexa
Visualisation & Service · Lesson 42

Visual Formatting

Formatting is not decoration — it is communication. The same data presented with inconsistent colours, unlabelled axes, crowded data labels, and default fonts produces a report that looks like a draft. The same data with a deliberate colour system, clear hierarchy, well-placed labels, and consistent spacing produces a report that feels authoritative and is trusted. This lesson covers every Format pane section, the professional settings that separate polished reports from rough ones, and the formatting decisions that affect whether the data is correctly perceived.

The Format Pane Structure

The Format pane is split into two tabs: Visual (settings specific to that chart type — axes, data labels, legend) and General (settings that apply to any visual — title, background, border, shadow, size, position). Every visual has both tabs. A consistent workflow is to configure Visual settings first, then General settings last.

Format pane — Visual tab structure
Visual tab (chart-specific)
X / Y Axis — scale, min/max, gridlines, label rotation, number format
Legend — position, title, font size, colour
Data labels — on/off, position, font, number format, overlap
Data colours — per-series colour, conditional formatting
Plot area — background colour, gridline colour, padding
Zoom slider — enable scrolling for dense time series
General tab (all visuals)
Title — text, font, size, colour, alignment, background
Effects → Background — fill colour, transparency
Effects → Border — colour, width, rounded corners
Effects → Shadow — on/off, colour, blur (use sparingly)
Properties → Size & position — exact pixel dimensions for precise layout
Alt text — screen reader description for accessibility

Themes — Consistent Colour Across the Whole Report

A theme is a JSON file that sets the default colours, fonts, and visual formatting for every chart in the report. Instead of setting colours individually on each visual, define them once in a theme. When the brand changes, update the theme file and every visual updates simultaneously.

// Power BI theme JSON structure — save as yourtheme.json
// Import via: View tab → Themes → Browse for themes
{
  "name": "Dataplexa Corporate",
  "dataColors": [
    "#0369a1",   // Primary blue
    "#7c3aed",   // Purple
    "#16a34a",   // Green
    "#ea580c",   // Orange
    "#dc2626",   // Red
    "#0891b2",   // Teal
    "#92400e",   // Brown
    "#475569"    // Slate
  ],
  "background":       "#ffffff",
  "foreground":       "#0f172a",
  "tableAccent":      "#0369a1",
  "visualStyles": {
    "*": {               // applies to ALL visual types
      "*": {
        "fontFamily":   [{ "value": "Segoe UI" }],
        "fontSize":     [{ "value": 12 }],
        "labelColor":   [{ "value": { "solid": { "color": "#475569" } } }]
      }
    },
    "barChart": {
      "*": {
        "dataPoint":  [{ "fill": { "solid": { "color": "#0369a1" } } }]
      }
    }
  }
}
Theme colour palette — how dataColors map to series in a multi-series chart
Series 1
Series 2
Series 3
Series 4
Series 5
Series 6
Theme applies to every visual instantly · importing a new theme file updates all colours simultaneously · individual visual overrides still work on top of the theme

Axes — The Most Commonly Mis-configured Element

Axis configuration has the single biggest impact on whether a chart is read correctly or misread. The most dangerous mistake is truncating the Y axis — starting it at a value other than zero makes small differences look large. This is the most common source of misleading charts.

❌ Truncated Y axis — misleading
$90K $95K $100K Q1 Q2 Q3 Q4
Axis starts at $90K. The Q4 bar looks 4× taller than Q1. Actual difference: $93K vs $100K — just 7.5% growth visually exaggerated into a dramatic spike.
✓ Zero-based Y axis — honest
$0 $50K $100K Q1 Q2 Q3 Q4
Same data, axis starts at $0. Q4 is clearly a modest improvement over Q1. The growth is real but not exaggerated. Audience makes correct proportional judgement.
Axis settingBest practice
Y axis minimumAlways 0 for bar/column charts. Only deviate for line charts showing narrow-range variation (e.g. exchange rates) and only with explicit label noting "axis does not start at zero."
Axis titleRemove if the unit is obvious from the data labels or chart title. Keep it when the unit is ambiguous ("Revenue" — is it thousands? dollars? units?). Use the title to include the unit: "Revenue ($000s)".
Label rotationAvoid 90° rotation — it forces the reader to tilt their head. Use a horizontal bar chart instead when labels are long, or abbreviate the labels.
Number formatSet axis number format to match the measure format: "$#,##0" for currency, "0%" for percentages, "#,##0" for integers. The axis format overrides the measure's model format string on that visual.
GridlinesLight grey (#e2e8f0 or similar), thin (1px). Remove them entirely on simple charts with few data points — they add ink without adding information. Keep them on dense time series where reading exact values matters.

Data Labels — When and How

Data labels add precision but also add clutter. The rule is: if the audience needs the exact value, add a label. If they only need to see the relative size or trend, leave them off. Never add labels to a chart that already has a tooltip — the tooltip gives precision on hover without cluttering the visual.

✓ Good data label usage
Bar chart with 4–5 bars: label the end of each bar with the value. The exact number saves the reader from estimating against the axis.
KPI card: label with the value AND the change from prior period — "110K ▲ +21%". The card is meaningless without both numbers.
Donut/pie: label each slice with both the category name and the % — slices do not have axis positions to read against.
❌ Bad data label usage
Line chart with 24 monthly data points: 24 labels overlap and create a wall of numbers that obscures the trend line — the whole point of the chart.
Stacked bar with 4 segments each: 16+ overlapping labels on a single visual. The segments are too narrow to fit readable labels. Use a tooltip instead.
Scatter chart with 200 data points: 200 labels make the chart unreadable. Label only outliers or specific points of interest using annotations.

Titles — The Most Underused Formatting Element

Every visual should have a title that describes the insight, not just the data. "Revenue by Region" tells you what is on the chart. "North Leads Revenue Despite Flat Q2" tells you what to look for. Insight-driven titles transform visuals from data displays into communication. Use the dynamic title pattern (a DAX measure in the title field) to make titles respond to slicer selections.

// Dynamic chart title measure — updates when slicer changes
Chart Title =
VAR SelectedYear  = SELECTEDVALUE(Calendar[Year], "All Years")
VAR SelectedRegion = SELECTEDVALUE(Orders[Region], "All Regions")
RETURN
    "Revenue: " & SelectedYear & " · " & SelectedRegion

// In Report View: select the visual → Format pane → General →
// Title → Title text → click the fx button → select the measure
// The title now reads:
// "Revenue: 2024 · North"  when slicer = 2024 and North
// "Revenue: All Years · All Regions"  when no slicer selected
Dynamic title — how it changes with slicer selection
No slicer selected
"Revenue: All Years · All Regions"
Year = 2024
"Revenue: 2024 · All Regions"
Year = 2024, Region = North
"Revenue: 2024 · North"
Connect the measure to the title via the fx button in Format pane → General → Title → Title text

Colours — The Four Rules

1
Use colour to encode meaning, not decoration
Green = positive/on-track, Red = negative/alert, Blue = neutral/primary. If every bar is a different colour with no reason, colour is just noise. If green bars signal above-target and red signal below-target, colour is data.
2
Limit to 4–6 colours per page
More than six colours on one page overwhelms the visual system. Viewers cannot build a reliable colour-to-meaning association when there are too many colours to remember. Use shades of the same hue for sub-categories within a category.
3
Test for colour-blind accessibility
8% of men have red-green colour blindness. A chart that uses only red and green to distinguish categories is unreadable for them. Use both colour AND shape (markers), colour AND position, or colour AND label. The Power BI accessibility checker (View → Check accessibility) flags colour contrast issues.
4
Use colour saturation for continuous data
For a heatmap or choropleth map showing a continuous metric (like revenue per region), use a single-hue scale from light to dark. Light = low, dark = high. Avoid rainbow colour scales — they imply equal perceptual steps but hues are not perceived equally.

The Professional Formatting Checklist

ElementProfessional standard
Chart title Present on every visual. Insight-driven where possible. 14–16px, bold. Remove "Title" default text and replace with the actual content.
Font consistency One font family throughout — Segoe UI is the Power BI default and works well. Never mix more than two font families in a report. Set in the theme to apply everywhere at once.
Background White (#ffffff) or very light grey (#f8fafc) for the page. White for visuals. Avoid dark backgrounds for printed/exported reports. Dark mode requires a full colour retheme — do not mix dark visuals on a white page.
Border and shadow Light 1px border (#e2e8f0) on each visual to define the boundary. Shadow: off unless the design explicitly uses card-style elevation. Both borders and shadows add ink — use only one or the other.
Alignment and spacing Use the Format → Align tools to align visual edges. Equal spacing between visuals. A 10–16px gutter between visuals. Consistent left margin. Nothing should appear "approximately" aligned — use the alignment tools.
Number format Currency values: "$#,##0" or "$#,##0K" for thousands. Percentages: "0.0%". Counts: "#,##0". Decimals in KPI cards: one decimal place maximum. Set on the measure in Model View so it applies everywhere, not per visual.

Teacher's Note: The formatting decision that has the highest return for the least effort is removing the visual border on every chart and replacing it with consistent spacing. Default Power BI charts have no border and generous padding — but many developers add borders and reduce padding to fit more charts on the page. The result looks cramped and amateur. The professional approach is fewer, larger charts with generous whitespace. A report with five well-spaced, clearly titled visuals communicates better than one with ten small, cluttered visuals where you need to zoom in to read anything.

Practice

Practice 1 of 3

To apply a consistent font, colour palette, and default visual formatting across every chart in a report with one action rather than configuring each visual individually, you import a ___ file via the View tab.

Practice 2 of 3

Starting the Y axis of a bar chart at $90,000 rather than $0 makes a 7.5% revenue increase look like a dramatic spike. This is the most common example of a ___ axis, which distorts the perceived magnitude of differences between bars.

Practice 3 of 3

To make a chart title automatically display the currently selected year and region from slicers — for example "Revenue: 2024 · North" — you create a DAX measure that returns a text string, then connect it to the title field using the ___ button in the Format pane Title section.

Lesson Quiz

Quiz 1 of 3

A line chart shows monthly revenue for 24 months. You enable data labels and the chart becomes unreadable — 24 overlapping numbers obscure the trend line. What is the correct solution?

Quiz 2 of 3

A report uses green for "above target" and red for "below target" in a performance table. A colleague who is colour blind cannot distinguish the colours. What is the most accessible fix that preserves the colour coding for sighted users?

Quiz 3 of 3

You set the number format "$#,##0" on the Revenue measure in Model View. A specific bar chart then shows values like "1,234" without the dollar sign. What is the most likely cause?

Next up — Lesson 43 covers Slicers and Filters in depth, including every slicer type, the difference between slicer and filter panel filters, sync slicers across pages, and the interaction settings that control how visuals respond to each other.