Skip to content
Plume Visuals
← Back
Going furtherIntermediate5 min read· Published on October 4, 2026

Annotate a line chart: comments attached to points

Explain a peak or a dip right on the line with Line Plume: “Annotate” button, “x | series | text” list or DAX measure, annotations that follow the filters.

Lire en français

A peak in November, a dip in April: on a line chart, readers see the event but not its explanation. In Power BI, you then drop a text box on top of the chart… which lands next to the point as soon as someone filters a year or resizes the visual. Line Plume attaches each annotation to a point of the line (an x value and a series): the bubble follows the line when the data changes and disappears when the point is no longer shown. This tutorial annotates the monthly sales of a home store (fictitious data).

What you need

  • A recent version of Power BI Desktop.
  • The Line Plume visual, installed from the .pbiviz file in your "Downloads" area: Visualizations pane › … › Import a visual from a file.
  • A date (or month) column and a measure.

The PlumeLineChart-Sample-EN sample report, in the same area, shows these charts ("2 · Annotations ★" page).

1. Prepare the data

The Sales table has one row per order, with a Month column (first day of the month, mmm yyyy format) and a Channel column (Store, Web, Phone). For annotations that come from the data, add a small Events table (Home › Enter data): a Month column (date) and a Text column, with no relationship.

Revenue = SUM ( Sales[Amount] )

Event =
VAR m = MAX ( Sales[Month] )
RETURN
    CONCATENATEX ( FILTER ( Events, Events[Month] = m ), Events[Text], " · " )

Event returns a text for the months listed in the table and nothing elsewhere: each non-blank value becomes an annotation.

2. Drop the fields

Visual wellField
X axisMonth (the field itself, not its date hierarchy)
Legend (series)Channel (optional)
Y axis valuesRevenue
Annotations (text)Event (optional)

Dates are spaced by their real gap. On hover, a vertical guide shows every channel for the month in one tooltip. Set X axis › Date format (for example MMM yyyy) and Lines › Shape (Straight, Smooth or Step).

3. Three ways to annotate

With the "Annotate" button (the fastest). In edit mode, hover the chart: an Annotate button appears. Click it, then a point of the line, type the text and press Enter (Esc cancels). The visual writes the line into the Format pane list by itself. Then:

  • drag a bubble to move it (the position is saved);
  • double-click it to edit the text;
  • click × to delete it.

With the keyboard: Tab to the chart, Annotate (Enter), ← → for the date, ↑ ↓ for the line, Enter to type the text.

With the list. In Annotations ★ › Annotations (one per line), one line per annotation, as x | text or x | series | text:

# Lines starting with # are comments
2023-11 | Web | Black Friday: Web record
2023-12 | Store | Christmas in store
2025-03-15 | Mid-March
  • x: a date (2024-06-01, 2024-06, 2024, 06/15/2024 in US English), a number or a category as displayed. A date missing from the data goes to the nearest point, as long as it stays within the axis range.
  • series: optional, the name as shown in the legend (case and accents ignored). Without a series: the first line that has a value at x.
  • text: up to 4 lines, wrapped automatically. A vertical bar inside the text is written \|.

With a measure. The Event measure in Annotations (text) creates one annotation per non-blank value. These annotations can be dragged, but are edited in the Events table.

A line that cannot be placed (unknown series, unreadable date) is reported at the bottom of the chart, in edit mode only: "Annotation ignored (series or x not found)". A month that is simply filtered out is not an error: the annotation comes back with its point.

4. Tune how annotations look

  1. Annotations ★ › Displayed content: Text, Text and value or Text, x and value.
  2. Style: Bubble, Filled label or Text only; Color (empty = series color), Text size, Maximum width (px).
  3. Marker on the point, Connector (Line or None) and its Line style.
  4. Default position: Automatic (no overlap) avoids lines, labels and axes; Distance from the point (px) moves bubbles further away.
  5. To publish a report without the button, turn off "Annotate" button (edit mode): annotations stay visible.

5. Premium features ★

FeatureWhere to set it
Annotations (button, list, measure)Annotations ★ card and Annotations (text) well
Name and last value at the end of each lineEnd-of-line labels ★
One or more series in color, the others in grayData colors › Coloring: Highlight series ★
Gradient areaLines › Fill under the line: Gradient ★
Reference lines, trendAnalytics pane › Reference lines ★, Trend ★

No feature is ever blocked. Without a key, annotations display normally with a light "Plume Visuals · Premium preview" watermark and an "Unlock →" link. Paste a license key (format PLUM1.…, valid for one year) in Plume Studio License › License key, the first card of the Format pane, to remove it. Line Plume alone: €39 (Personal), €99 (Small business) or €299 (Enterprise), or the Full catalog bundle: see pricing.

6. Dynamic formats

Any setting can come from a DAX measure (see the tutorial). Example: build the whole annotation list, series included, from a Notes table (columns Month, Channel, Text):

Notes list =
CONCATENATEX ( Notes, FORMAT ( Notes[Month], "yyyy-MM" ) & " | " & Notes[Channel] & " | " & Notes[Text], UNICHAR ( 10 ) )

Drop the measure into Dynamic format, then right-click › Rename for this visual: annotations.list. It wins over the Format pane list: add annotations in the table, not with the button.

Common pitfalls

  • The same annotation on every line: with a Legend (series), the annotation measure is evaluated for each series. Limit it to one series, for example IF ( SELECTEDVALUE ( Sales[Channel] ) = "Web", [Event] ).
  • Nothing shows: Annotations ★ › Show is off, or x is outside the axis range (year filter).
  • Dates read the wrong way: 03/04/2025 follows the day / month order of the number locale; the 2025-04-03 format is always understood.
  • A value starts with #: write \#, otherwise the line is a comment.
  • Only one measure in Y axis values with a legend: remove the legend to draw several measures or use Secondary Y axis values.

Another question? Go to support.

Summary

  • One annotation = one point (x, series): it follows the line and the filters.
  • Annotate button to go fast, x | series | text list to review everything, text measure for events coming from the data.
  • Visual page and live demo: Line Plume.