Article 4 min read

Workshop: Multi-Series Line Chart with a Legend

Extract 36 data points across three product lines from a year of monthly data. Practice the per-series workflow that AI chart extraction reliably gets wrong.

Illustration for "Workshop: Multi-Series Line Chart with a Legend"

Workshop two of five. Steps up from the bar chart to three overlapping series — where vision LLMs swap series and produce confidently wrong output. Calibrated handles it the same as a single line: one series at a time.

The practice chart

Quarterly Adoption by Product — 3 lines × 12 months, distinct colors

Open this chart in DataFromChart →

Three product lines (A blue, B green, C orange) monthly over a year. 36 points. Y-axis “units sold (thousands)” 0-130; x-axis Jan-Dec.

Target: three series, twelve (month, value) pairs each.

The trick: extract one series at a time

Finish one series completely before starting the next. All twelve Product A points first, then Product B. Don’t interleave.

Why: with all series in one extraction, it’s easy to lose track of which point belongs to which — especially at crossings. The data layer can’t separate them after the fact.

DataFromChart supports per-series extraction natively: three points groups, series name as label.

Step 1: open the chart and create the first series

Open the chart, advance to POINTS, create a group “Product A”. The app defaults to blue — usually matches.

Step 2: place Product A points

Click each of the twelve blue-line points left to right. Zoom in — land on the marker.

Twelve clicks. Blue points should sit on top of the blue data.

Step 3: calibrate the axes

Y-axis: 0 at the bottom gridline, 120 near the top. X-axis: Jan (month 1) and Dec (month 12), or skip x-calibration if you’ll re-label by month name in the export.

Step 4: repeat for Products B and C

Create “Product B”. Twelve green-line points. Then “Product C”, twelve orange. Don’t re-calibrate — axes apply to all series.

Total: 36 clicks, two calibrations, three named groups.

Step 5: export

XLSX or CSV. All 36 points with series names in long format:

series,month,value
Product A, Jan, 31.2
Product A, Feb, 36.0
...
Product B, Jan, 42.4
...

Long format is what Plotly, ggplot, and Vega-Lite prefer.

Answer key

Ground-truth values:

MonthProduct AProduct BProduct C
Jan39.649.844.5
Feb37.448.842.0
Mar39.252.842.9
Apr41.655.739.3
May41.354.242.0
Jun42.855.945.6
Jul39.457.247.3
Aug36.061.952.1
Sep34.165.251.2
Oct36.964.154.2
Nov37.269.956.1
Dec36.367.157.9

Per-series MAE. Aim for under 1.5. Above 3 = calibration drift; above 5 with no calibration issue = a point on the wrong series, usually at a crossing.

Common mistakes

  • Swapping series at crossings. When blue and green cross around May, it’s easy to click the green line while extracting Product A. Named groups make this visible — a Product A point on the green line is an obvious mismatch. Re-check at crossings.
  • Forgetting to switch active groups. Clicking while “Product A” is still active adds to Product A. Check the active group label before each set.
  • Inconsistent x-positions across series. All three should share x-positions per month, but eyeballing “Jan” differently each time misaligns your Jan values. Set x-snap to month positions if precision matters.

How this compares to AI

Multi-series is where AI fails most visibly. From our benchmark:

  • Claude Sonnet 4.6: 18% MAE, swaps in 5 of 12 months.
  • GPT-4o: 22% MAE, consistent swap on the B/C crossing.
  • Gemini 2.5 Pro: 20% MAE.

All three could name the series from the legend. None could reliably tie a name to the right line at each x. Per why AI gets chart data wrong: tracking lines through crossings needs sustained spatial reasoning vision encoders aren’t built for.

Calibrated extraction beats all three by 15-20 percentage points in ~8 minutes.

Next

Try it on your own chart

Upload an image, click your data points, calibrate the axes, and export CSV. Under three minutes, no login required for a single export.

Open the extractor

Keep reading

All articles