People need to identify chart series and isolate the ones they want to compare.
Updated September 10, 2026
Problem
A crowded chart makes it difficult to compare the few series relevant to the current question.
Solution
Let people use the legend to isolate a series or select a comparison set. Make the behavior clear and provide a visible way to restore all series.
Show which series are currently visible. Support keyboard and touch use rather than requiring a modifier key or hover.
Keep names and useful summary values readable without letting the legend crowd out the chart. Use labels or line styles as well as colors to connect series with their names. Preserve the selection in shared views where supported.
Use when
People need to compare different subsets of the series shown in one chart.
Don’t use when
There is one series, where the legend is a label pretending to be furniture. Or when there are fifty, where the legend is a scrolling list nobody reads and small multiples would answer better.
Trade-offs
Hidden series can make a screenshot misleading. Large legends consume chart space, and unfamiliar toggle behavior can look like data disappeared. Many series may be better split into smaller charts.
Checklist
Does clicking a series isolate it or hide it, and is that discoverable?
Is there a reliable one-action restore?
Can the viewer build a set of two or three, and how?
Does the legend carry values or calculations, or only names?
Is placement right for the series count, and does it scroll rather than truncate?
Are series names readable, or truncated into ambiguity?
Does the chart’s meaning survive for someone who cannot distinguish the colours?
Does toggle state go into the URL or a shared link?
Is series order stable between refreshes?
At what series count should this be small multiples instead?
Compare
Grafana isolates on click and builds sets with Ctrl or Cmd, offers list and table legends with values in them, and lets the legend sit bottom or right, which makes it as much a summary table as a key. Datadog leans on hover-to-highlight over click-to-isolate, so exploring is transient and nothing persists into a state someone could misread. Honeycomb mostly avoids the problem by grouping at query time: rather than toggling fourteen series off a chart, you change what you grouped by and get the two you wanted. Netdata puts a dimension list under every chart with per-dimension toggling, which at hundreds of charts makes the legend the primary way of narrowing anything.
Related
Time series supplies the chart. Categorical series palette distinguishes the lines. Hover detail identifies values at a point.
Small multiples separates crowded series. Cross-filter extends selection to other panels.
Wireframe — the pattern's anatomy, not any one product's version of it
Implementation
The legend does something here. Once a chart has more than three series the reader needs to isolate one, and making that work inside the chart is cheaper than a filter that reloads the page.
Screenshots are grouped by product and include the capture date.
Dashed boxes highlight this pattern. Notes appear below each screenshot and when you hover over a box.
Examples / Geomap September 10, 2026Grafana Play (signed out; no version string exposed)medium · dark · desktop-web
The same flight data appears on several map backgrounds. Small green markers are difficult to distinguish on the dark maps and compete with terrain colors on the satellite view. The density layer makes broad clusters easier to see, though its settings affect how widely those clusters spread. Legends labeled Layer 1 do not explain the data being shown.
Geo map with markersSmall green markers are difficult to distinguish on the dark background.
Examples / Node graph panel September 10, 2026Grafana Play (signed out; no version string exposed)sparse · dark · desktop-web
Several service nodes extend beyond the panel’s right edge, so the full graph is not visible at once. Each node contains two values and a colored ring, with a legend explaining the measures. This adds detail but makes the map harder to scan for a single overall state. The zoom control helps reach the clipped nodes, though a clearer initial fit would make the relationships easier to inspect.
Service mapNodes represent services and lines represent their connections.
Metrics / System › Compute › CPU September 10, 2026Netdata Agent (public registry node, signed out)dense · dark · desktop-web
This section follows several nested levels of the generated metric hierarchy. Leading dashes indicate depth, while a breadcrumb identifies the current CPU section. Each chart includes its own grouping and aggregation controls. The Anomaly Rate option is visible but switched off, so this capture demonstrates the control rather than the resulting anomaly display.
Collapsible rowNested headings use leading dashes to show depth.
Gauge and dialThe gauges mix bounded percentages with rates whose limits need explanation.