tcviz VISUALS TO POWER BI
Histogram Pro
Support & Documentation
Visual v1.4.0.0  ·  docs updated 8 Oct 2026  ·  what's new

Supported Power BI features: small multiples · conditional formatting (fx) on bar colour · drilldown on a hierarchy in Detail · cross-filtering by the whole bar, Ctrl+click multi-select and highlighting · bookmarks (the selected bars are restored and shown) · standard and report page tooltips · context menu · keyboard navigation with ARIA labels · high contrast · number formats from the model · localization (English, Spanish) · IBCS mode · data streaming past 30,000 rows. Analysis: mean, median, quartiles and IQR, a benchmark line, value zones with the share of rows and of value in each, a cumulative frequency line, a normal curve and a statistics panel.

Quick Start

1. Add the visual to your report

In Power BI Desktop, go to the Visualizations pane → click the three dots → Get more visuals → search for Histogram Pro.

2. Bind your data

Put the field that identifies one observation — Order ID, Customer, Ticket, Employee — in Detail (rows), and the number to distribute — Sales, Days to close, Score — in Values. The visual counts one row per Detail value, so the Detail field decides what "one" means: one order, one customer, one ticket.

3. Read the shape, then tune it

The chart starts with 10 bins and the mean and median lines. Open the Format pane to add quartiles, IQR shading, a benchmark, value zones or the cumulative line, and (Pro) to change the bin count.

4. Compare groups

Drop a field such as Region or Year into Small multiples (Pro). You get one histogram per value, on the same bins and the same vertical scale, so the panels can be compared bar by bar.

Reading the chart

Bars

Each bar is a range of values (a bin) and its height is how many rows fall in it. All bins are the same width. Hover a bar for its range, its count, its share of all rows and — with the cumulative line on — the share of rows up to and including it.

Mean and median

The mean (dashed) and the median are drawn as vertical lines. The gap between them is the quickest read of skew there is: a mean well to the right of the median means a long upper tail — a few large values are pulling the average up.

Quartiles and IQR

P25 and P75 mark the first and third quartiles; the IQR shading covers the middle half of the rows between them. A narrow band means a consistent process; a wide one, a spread-out one.

The clipped axis

When a few extreme values would stretch the axis until everything else sits in the first bar — the full range at least 1.5 times wider than where the data lives — the axis stops at Tukey's fences (Q1 − 1.5·IQR to Q3 + 1.5·IQR) and a note at the bottom says "Axis clipped to the long tail · the last bar holds everything above X". No row is dropped: values beyond the axis are counted in the end bar, and the mean, the median and σ are computed over every row.

Value zones Pro

Two cut points split the axis into three shaded zones — for example small, medium and large deals. Each zone is labelled with its share of rows and, optionally, its share of the total value. The two numbers together answer the concentration question directly: "> 50K: 8% of rows · 46% of value" means a few large deals carry almost half the revenue.

Cumulative frequency Pro

A line from 0% to 100% on its own right-hand axis: the share of rows at or below the end of each bin. Read across from 80% to find the value that 80% of rows stay under, without counting bars.

Benchmark

A vertical target line — a turnaround time, a tolerance, a policy limit. With Color bars by benchmark the bars on each side take their own colour, so "how much falls on the wrong side" reads at a glance. A bar is coloured by its midpoint.

Normal curve Pro

A bell curve with the same mean and standard deviation as your data, scaled to the bars. It is a visual reference, not a normality test: read it as "clearly not normal" rather than "normal". With a long tail, σ is much wider than the axis and the bell is nearly flat over it; the chart then says "Normal curve flat: data far from normal" next to the curve.

Statistics panel Pro

n, mean (μ), median (M), standard deviation (σ), min and max in the top-right corner. When rows are trimmed, n says how many. The panel hides itself when the plot is narrower than about 260 px, so it never covers the bars.

Small multiples Pro

Every panel shares the same bins and the same vertical scale, so a taller bar is really more rows. Mean, median, quartiles, zones and the statistics panel are computed per panel, over that panel's rows. Panels are sorted by the value of the Small multiples field (numbers and dates in order, text alphabetically), and the legend is drawn once for all panels.

Field Wells

Field wellAcceptsWhat it does
ValuesOne numeric fieldThe number to distribute. Required. Its format string from the model (currency, percent, decimals) is used on the axis, the labels, the tooltip and the statistics panel.
Detail (rows)One or more grouping fieldsWhat one row is. The histogram counts one row per value of this field. With a hierarchy here, the drill-up / drill-down buttons in the visual header work as in any native chart.
Small multiples ProOne grouping fieldOne histogram per value, on shared bins and a shared vertical scale.
TooltipsMeasuresExtra measures shown when you hover a bar, as the average over the rows in that bin. Report page tooltips are supported too.

Format Pane

Every setting that needs a licence says (Pro) in the format pane. None is hidden.

Histogram

SettingDefaultWhat it does
Number of bins Pro102 to 100. Free uses 10.
Lower trim % / Upper trim % Pro0Leaves out that percentage of rows from each tail, before binning. Unlike the clipped axis, trimmed rows are excluded from the statistics, and the panel says how many.
Bar color ProCyanHas an fx button: colour bars by a rule or a field instead of one colour.
Bar opacity %, Border color, Border width, Bar gap px Pro80 · dark · 1 · 2Bar styling.

Axes

SettingDefaultWhat it does
Axis text color, Grid colorGreyAxis labels and gridlines.
Font size10Axis labels. Fewer X labels are drawn on narrow plots so they never overlap.
Show X label / Show Y labelOnAxis titles.

Statistics

SettingDefaultWhat it does
Show mean line, Show median lineOnVertical reference lines, each with its own colour.
Show P25 line, Show P75 lineOffFirst and third quartiles.
Show IQR rangeOffShades the band between P25 and P75.
Label background, Label background opacity %White · 75The box behind line labels and zone labels, so they stay readable over bars.
Normal curve ProOffBell curve with the data's mean and σ.
Cumulative frequency ProOff0–100% line on its own right axis.
Stats panel ProOnn, μ, M, σ, min, max.
Stats text color, Stats panel background, Stats panel opacity % ProGrey · black · 35Panel styling — set an opaque light background on a white report.

Value zones Pro

SettingDefaultWhat it does
Show value zonesOffTurns the three zones on. Nothing is drawn until the two cuts differ.
First cut, Second cut0The boundaries, in the units of Values. Order does not matter. A value equal to a cut belongs to the lower zone.
Low / Middle / High zone colorGreen · amber · redZone shading.
Show zone labelsOnLabels in front of the bars, shortened automatically when a zone is narrow.
Show share of total valueOnAdds "· N% of value" to each label. Turn it off for measures where a sum means nothing (scores, durations).

Benchmark

SettingDefaultWhat it does
Show benchmark line, Benchmark value, Line color, Benchmark labelOff · 0 · red · "Target"A vertical target line with its label.
Color bars by benchmark, At or above / Below benchmarkOffColours each bar by which side of the line its midpoint falls.

Value labels Pro

SettingDefaultWhat it does
Show, Font size, ColorOff · 9The count above each bar — short bars included.
Show percentOffAdds the bar's share of all rows.

Small multiples Pro

SettingDefaultWhat it does
Columns0 (automatic)0 picks a grid that fits the visual's shape; any other number fixes the columns.
Title font size, Title color12 · greyPanel titles.

Legend

SettingDefaultWhat it does
Show legendOffLists the active reference lines and curves: mean, median, quartiles, cumulative, normal and benchmark.
Position: bottomOffMoves the legend below the chart (below the grid with small multiples).
Mean / Median / P25 / P75 / Normal label—Rename the legend entries, e.g. "Average deal".
Font size, Font color9 · greyLegend text.

IBCS

IBCS mode switches to the International Business Communication Standards notation: dark grey bars, solid black mean, dashed grey median, greyscale zones. It overrides the colour settings while it is on.

Selection & filtering

Click a bar

Filters the rest of the page to every row behind that bar, and the bar stays highlighted while the others dim. Click it again, or click empty space, to clear.

Ctrl+click

Adds bars to the selection (or takes one out). Within small multiples, Ctrl+click adds bars of the same panel; a click in another panel starts a new selection.

Bookmarks

The selection is stored with the report, so a bookmark brings back both the filter and the highlighted bars. In Desktop, Ctrl+click a bookmark button to try it while editing.

Drilldown

With a hierarchy in Detail (rows), the visual uses Power BI's selection so drill-down on a bar works as in a native chart.

Highlighting from other visuals

When another visual highlights a subset, the part of each bar that belongs to it is drawn solid over the dimmed total.

Accessibility

Performance & limits

WhatLimit
Rows in the ServiceYour whole table. Power BI hands a visual 30,000 rows at a time; the visual asks for the following segments and combines them. Verified at 500,000.
Rows in DesktopThe first 30,000 — Desktop cannot stream segments. The chart says so; publish to the Service for the full distribution.
Bins10 in Free, 2 to 100 in Pro.
One clickUp to 10,000 distinct values filtered at once. A bar holding more is not filtered partially: the visual says so, and more bins (Pro) put fewer rows in each bar.

Free vs Pro

FeatureFreePro
Histogram over your whole dataset, no watermark✓✓
Mean, median, P25, P75, IQR shading✓✓
Benchmark line and bar colouring by benchmark✓✓
Legend, axes, IBCS mode, high contrast, keyboard, cross-filtering, bookmarks✓✓
Number of bins102–100
Outlier trimming—✓
Value zones with share of rows and value—✓
Small multiples—✓
Cumulative frequency line—✓
Normal curve, statistics panel, value labels—✓
Bar colour, fx rules, opacity, border, gap—✓

Pro preview

Turn on a Pro feature while editing without a licence and it is drawn working, on your own data, under a "Pro preview" watermark that names it — together with Power BI's own notification and its link to the licence. In reading view, published reports and exports the free chart is shown, without watermark or prompt.

FAQ

The visual shows "Add a numeric field to get started"

Put a numeric field in Values. The chart needs at least two rows, so also put the row identifier in Detail (rows).

Why does the x-axis stop before my largest value?

So that you can see your data. A single extreme value would stretch the axis and squash every other row into the first bar, so the axis stops at Tukey's fences and the last bar holds everything beyond — a note on the chart says so. No row is dropped and the statistics use every row. To set the range yourself, use Lower / Upper trim % (Pro).

How many bins should I use?

Start around 10–25 and move it until the shape stops changing character. Too few bins flatten two groups into one hump; too many turn a clear shape into noise. If the shape keeps changing, that instability is telling you something about the data.

The bin count, value labels or zones don't change anything

They are Pro features. While you edit without a licence they are drawn under a "Pro preview" watermark; in reading view the free chart is shown. Settings marked (Pro) in the format pane are the ones that need the licence.

My value zones don't appear

Both cuts start at 0, and zones are drawn only when the two cuts differ. Enter both in the units of your Values field — for revenue in euros, 10000 and 50000, not 10 and 50.

The normal curve is a flat line

It is the correct curve for your data: with a long tail the standard deviation is far wider than the visible axis, so a bell with that mean and σ is almost flat over it — the chart says so next to the curve. It means the data is far from normal. To see the bell over the bulk of the data, trim 1–2% of each tail (Pro): the statistics are then computed without the tail.

What is the difference between the clipped axis and trimming?

The clipped axis is presentation only: every row is counted and the statistics are exact. Trimming (Pro) excludes the trimmed percentage of rows from the bars and from the statistics; the panel shows how many were left out. Use trimming to read ordinary behaviour, and say so on the page.

Clicking a bar doesn't filter the other visuals

Check Format → Edit interactions — the other visuals must be set to filter. If the bar holds more than 10,000 distinct values the visual tells you and does not filter part of it; raise the bin count or filter the page first.

How do I test a bookmark button in Desktop?

While editing, Power BI only applies a button on Ctrl+click. In reading view or the Service a normal click is enough.

Why does Desktop show fewer rows than the Service?

Desktop cannot stream data segments to custom visuals, so it draws the first 30,000 rows and says so on the chart. The Service streams the rest; publish the report for the full distribution.

Does the visual send my data anywhere?

No. It makes no network calls; it only reads the fields you bind, and its settings are stored in the report. The licence is checked through Power BI's own licensing API. See the privacy policy.

How do I report a bug or request a feature?

Open an issue on GitHub — include the bin count, the value range and the row count, which is what makes a distribution bug reproducible. Questions and ideas are welcome in Discussions.

Contact & Support

✉️

Need help? We reply within 1 business day.

For bug reports, feature requests, and licensing questions:
support@tcviz.com

You can also open an issue on GitHub, ask in Discussions, read a worked example in the case study, or see what changed in the changelog.