Article 3 min read

Workshop: Extract a Simple Bar Chart (5 Minutes)

A guided practice extraction of a 5-bar chart with known ground-truth values. Hands-on intro to the five-step digitization workflow, with an answer key to grade yourself.

Illustration for "Workshop: Extract a Simple Bar Chart (5 Minutes)"

Workshop one of five. Synthetic 5-bar chart with known ground-truth values — extract, then compare against the exact answer to grade yourself. Fastest way to learn the workflow.

New to chart extraction? Start here. Already comfortable? Skip to workshop two (multi-series line) or workshop three (dense scatter).

The practice chart

Q3 Customer Satisfaction by Vendor — 5 bars, percent y-axis

Open this chart in DataFromChart →

Satisfaction scores for five fictional vendors. Y-axis 0-100%, clean gridlines, distinct bar tops. Easiest case.

Target: one (vendor, score) pair per bar. Five values.

Step 1: open the chart

Click “Open in DataFromChart” above — the chart loads with the five steps ready: CHART → PREPARE → AXES → POINTS → DATA. You’re on CHART.

Or upload manually: right-click the image, save, upload at datafromchart.com/extract.

Step 2: classify it (PREPARE)

Click Next to PREPARE. Pick the chart type — this is a column chart (vertical bars). PREPARE is also where you set each axis’s value type: the x-axis here is categorical (the five vendors), the y-axis numeric. Set those and advance.

Step 3: calibrate the axes (AXES)

Click Next to AXES. Because x is categorical, you only calibrate the numeric y-axis: drag the lower calibration line to y = 0 and the upper to y = 100, and enter 0 and 100. For the categorical x-axis you drag the category-center lines — the app shows a read-only “Categories: 5”.

Two clicks, two numbers.

Step 4: place points (POINTS)

Click Next to POINTS. Click once at the top of each bar — at the midpoint of the top edge. The cursor snaps to the clicked pixel; drag to nudge if you miss.

Five clicks, one per bar. The y-values come from the calibration you just set. Just put each point visually on top of its bar.

Pro tip: zoom in before clicking. The pixel difference between “on the top” and “one above” is small but real.

Step 5: read the data (DATA)

Click DATA. The app shows calibrated y-values:

Acme:  37.2
Bolt:  23.8
Crux:  61.9
Delta: 17.4
Echo:  52.9

Your numbers won’t match exactly — they depend on where you clicked. Aim for ±1.5 per value (≈1.5% MAE), the “clean chart, careful operator” target.

Export as CSV or XLSX. XLSX embeds the original chart so reviewers can verify visually. See chart screenshot to Excel.

Answer key

Ground-truth values:

VendorTrue value
Acme36.6
Bolt23.5
Crux61.5
Delta17.5
Echo52.7

Average the absolute differences. MAE under 1.5 (≈1.5% of the y-range) means you’ve nailed it. MAE above 3 usually means calibration is off — re-position lines on the actual gridline pixels.

Common mistakes

  • Calibration line off the gridline. Biggest source of error. “Around y = 0” instead of exactly on it propagates to every point. Zoom in for calibration.
  • Clicking the middle of the bar instead of the top. The top is the value; the middle is half. The app reads where you clicked, not what you intended.
  • Forgetting to enter the axis numbers. Dragging lines to the right positions doesn’t help if value boxes still say 0 and 1. Check both halves.

How this compares to AI

We sent this exact chart to ChatGPT, Claude, and Gemini — even the best model (Claude Sonnet 4.6) was off by enough to matter on average — usable for “which bar is tallest” but not downstream analysis. Calibrated extraction beats that by an order of magnitude with five minutes of practice.

Same pattern across chart types: AI is fast and rough, calibrated is slower and precise. See AI chart extraction vs calibrated digitization.

Next

Try it on your own chart

Create a free account to upload an image or PDF, calibrate the axes, and export CSV or XLSX. Or start with a built-in sample without signing in.

Open the extractor

Keep reading

All articles