Heatmap Plume: calendar, peak hours and 8 more recipes
Heatmap Plume use cases: multi-year calendar, day × hour, classes, sorting, and premium diverging scale, totals, comparison with last year, public holidays and animation.
Lire en françaisThese recipes start from the Sales table and the Total revenue measure of the getting started guide. The sample report PlumeHeatmap-Sample-EN shows them all.
How do I draw a calendar over one or several years?
You follow an activity day after day (visits, sales, incidents) and want to see the seasons and the busy days.
- Have a table with a date column (one row per day, or several rows per day) and a measure, for example
Visitor count = SUM ( Attendance[Visitors] )(a measure cannot have the name of a column of its own table). - Drop the date column into Date and the measure into Value (color). Leave Rows and Columns empty.
- The visual draws one strip per year: weeks as columns, days as rows, a space between months.
- For a small calendar per month, with the day numbers: Format › Calendar and hours › Layout › One block per month, then Format › Data labels › Content › Day number (calendar).
- To start the week on Sunday: First day of the week › Sunday.
Result: days without data are grayed ("Blank" in the legend); clicking a month name selects the whole month, clicking "Mon" selects every Monday.
No need to replace the date hierarchy with the date: Heatmap Plume rebuilds the date from the year, month and day.
How do I see peak hours (day of week × hour)?
A customer service team wants to know when calls come in.
- Have a date-time column (one timestamp per call or per hour) and a
Callsmeasure. - Drop the date-time into Date and the measure into Value (color).
- The visual computes the day of the week and the hour itself: 7 rows (in the order of the first day of the week) and 24 columns.
- For an average per hour rather than a sum over the whole period: Format › Layout › Several values in a cell › Average.
- For business hours only: Format › Calendar and hours › First hour = 7, Last hour = 20.
Result: no "Hour number" or "Weekday" column to create in DAX; the tooltip also gives the number of rows in each cell.
How do I color a difference around zero (diverging scale) ★?
An anomaly, a positive or negative margin: zero must be neutral, blue and red must face each other.
- Format › Color scale › Gradient › Diverging: two hues and a midpoint ★.
- Scale midpoint › Zero (or Average, Median, Fixed value and Midpoint value = 100 for an index).
- For other colors: Style › Custom colors › Gradient palette, or Gradient: start, Gradient: middle (diverging) and Gradient: end.
Result: the scale is symmetric around the midpoint; a mark shows the midpoint in the legend.
How do I compare easily: classes instead of a gradient?
A continuous gradient makes two neighboring cells hard to tell apart.
- Format › Color scale › Color distribution › Equal classes, Number of classes = 5.
- Click a class in the legend: only its cells stay sharp. Click it again to go back.
- ★ Quantiles: each class has the same number of cells (useful when values are very uneven). ★ Custom thresholds: type your bounds, for example
100000; 200000. - To pick the color of each class yourself, like the "Rules" of Power BI conditional formatting: Class colors (empty = gradient) =
#C0392B; #F5B041; #F4F6F7; #7FB3D5; #1F618D(from the lowest class to the highest; missing colors come from the gradient).
How do I sort rows and keep the most important ones?
- Format › Sort › Sort rows by › Row total: the department with the largest revenue on top.
- Value in a column and Column name =
Aug: the strongest departments in August on top. - Show the first N rows = 5: only the 5 departments with the largest total remain.
- ★ Similarity (clustering): departments with the same seasonality are placed side by side, with their tree (dendrogram) on the left.
How do I show row and column totals ★?
- Format › Margin totals ★ › Row totals (right) › Values ★ and Column totals › Values ★.
- Calculation: sum, average, maximum or minimum of the cells.
- ★ Bars or Bars and values: one bar per row and per column, which keeps its scale during the animation.
- ★ For shares rather than totals: Format › Data labels › Content › % of row ★, % of column ★ or % of total ★.
How do I compare each cell with last year ★?
- Create the reference measure, for example
Revenue LY = CALCULATE ( [Total revenue], SAMEPERIODLASTYEAR ( Dates[Date] ) )(date table marked as such). - Drop it into Reference ★.
- The cells take the color of the difference: green = favorable, red = unfavorable (style colors), with ▲ / ▼ in the labels.
- Format › Comparison ★ › Color by › Difference in % of the reference; for costs, A decrease is favorable.
How do I mark public holidays and events ★?
- Calendar: Format › Calendar and hours › Public holidays (France, Belgium, Switzerland, Canada, Germany, United Kingdom, United States). Holidays are outlined and named in the tooltip.
- Events: a text measure in Annotation ★, for example
Event of the day = SELECTEDVALUE ( Attendance[Event] ). A marker appears in the cell, the text is in the tooltip; Format › Annotations ★ › Marker: cell corner, dot or outline.
How do I animate the heatmap over time ★?
- Drop a year (or a date) into Play axis ★.
- Click ▶ under the chart: the cells change color from one year to the next, with a transition.
- Format › Playback ★ › Same scale for every frame (on by default): a color keeps the same meaning from one year to the next.
- With monthly dates in Date and a year in Play axis ★, the columns are the 12 months of the year: every frame fills the same columns.
How do I make a radial heatmap of the 24 hours ★?
- Start from the day × hour grid (the "peak hours" recipe).
- Format › Layout › Shape › Radial (columns around a circle): the hours go around the dial, one ring per day.
- Center hole: size of the empty circle in the middle.