Illustration for "How to Extract Data from a Logarithmic Chart"
· 10 min read

How to Extract Data from a Logarithmic Chart

Digitize log-scale charts without arithmetic mistakes. Calibrate at two visible powers of ten, let the tool handle the math, and avoid the three traps that turn a log axis into garbage data.

To extract data from a log-scale chart, calibrate the log axis at two visible powers of ten — for example 10 and 1000 — type those real values into the tool, mark the axis as logarithmic, and click your points as usual. The digitizer does the log interpolation for you. The result is real values, not log values.

Log axes trip people up because the spacing looks wrong and the temptation is to “fix” it manually in a spreadsheet. Don’t. Calibrate correctly once and the four-step extraction works the same as on a linear chart.

The short answer

Two calibration points per axis. Pick visible powers of ten. Toggle the axis to log. Export.

That is the entire method. Everything below is the failure modes — what happens when you skip the toggle, calibrate between powers of ten, or mix log10 and natural log.

For the general workflow, see the pillar guide on extracting data from a graph image. This post zooms in on the log-axis edge cases.

Why log axes trip people up

Log axes compress orders of magnitude into equal pixel distances. The visible distance from 1 to 10 equals the distance from 10 to 100, even though the underlying value range is ten times larger.

A linear digitizer reads pixel positions and assumes the value scales linearly between calibration points. If you give it “1” and “1000” on a log axis and let it treat the axis as linear, every point between gets mapped wrong — the midpoint pixel reads as 500, not 31.6.

The fix is one line in the math. Take log10 of the calibration values, interpolate linearly in log space, then raise 10 to the result. Every digitizer worth using has this built in as an axis toggle.

The four-step method, applied to log

The four steps are the same. Two of them get a small adjustment.

  1. Upload the chart image (same as linear).
  2. Place points on each data value (same).
  3. Calibrate the axes — for the log axis, set the type to “log” and enter the two real values (e.g., 10 and 10000), not their logs.
  4. Export as CSV or XLSX (same).

Step 3 is where every log-extraction error lives. The mental model that works: you are telling the tool “this pixel equals this real value.” Whether the in-between values are spaced linearly or logarithmically is a property of the axis type, not the calibration values.

Setting the axis to log

In DataFromChart, the axis type selector lives in the AXES layer alongside the calibration values. Pick “log” for the axis that’s logarithmic, leave the other on “linear” if it isn’t. Most charts are semi-log — log on Y, linear on X.

If your digitizer has no log toggle (some older desktop tools don’t), calibrate as linear, export the raw numbers, and apply 10^value in a spreadsheet column. The math is identical. The downside is that the live preview in the tool shows linear-interpolated values until you exponentiate, which is easy to confuse for the final output.

Worked example: an acoustic frequency response chart

Take a standard speaker frequency response curve: X axis from 20 Hz to 20 kHz on a log scale, Y axis in dB SPL from 60 to 110 on a linear scale. The published curve dips at 80 Hz, peaks at 3 kHz, and rolls off above 15 kHz.

Step 1: upload the PNG.

Step 2: place points along the curve — typically every octave (20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480 Hz), plus extra points where the curve changes direction.

Step 3: calibrate. On X, drop the start line at the 20 Hz tick and the end line at the 20000 Hz tick. Type 20 and 20000. Set X axis type to log. On Y, drop start at 60 dB tick, end at 110 dB tick. Type 60 and 110. Leave Y as linear.

Step 4: export. The X column will contain real frequency values — 20, 40, 80, etc. — not their logs. A typical row reads 80, 82.3 meaning “82.3 dB at 80 Hz.” Plot this back against the original chart in any spreadsheet and the curves should overlay cleanly.

If you accidentally left the X axis on linear, the row for the same point would read something like 60, 82.3 — the pixel midpoint between 20 and 20000 reported as a linear value. That’s the canonical log-extraction failure.

Try this on a real frequency response chart. Open the extractor, drop in the image, set the X axis to log, and export. Two minutes start to finish, no install required.

Semi-log vs log-log

Semi-log charts have one log axis. Log-log charts have two. The method scales: set each axis to its actual type.

Semi-log examples: bacterial growth (time on linear X, log CFU on Y), frequency response (log Hz on X, linear dB on Y), exponential decay plots.

Log-log examples: power-law relationships, allometric scaling, particle size distributions, certain financial charts. On a log-log chart, set both axis types to log, then calibrate each pair at two visible powers of ten. The extracted values are the real (non-log) numbers in both columns.

For log-log charts that span 4+ orders of magnitude on each axis, calibrate at the widest visible interval. A 1-to-10000 calibration is far more accurate than 10-to-1000, even though both are “two powers of ten apart.”

Common mistakes

Three mistakes account for most log-extraction errors.

Calibrating between powers of ten

Calibrating at 30 and 300 will work, but the pixel positions of “30” and “300” on a log axis are not where the eye expects them. Pixel placement error at non-power-of-ten ticks is roughly 2-3x higher than at integer powers, because the gridlines are usually drawn at the powers and labeled there.

Always calibrate at 1, 10, 100, 1000, 10000 — whichever powers of ten are visible as labeled ticks. Anything else is harder to place accurately.

Forgetting to toggle the axis type

This is the failure mode that produces extracted data that “looks reasonable but is wrong.” A linear-calibrated log axis produces numbers in the right range with a smooth curve, just badly distorted. You won’t notice unless you overlay the extracted data against the original chart.

Always overlay. Take five seconds. The two curves should sit on top of each other to within a pixel or two. If they bend differently between calibration points, the axis type is wrong.

Mixing log10 and natural log

Most published charts use log10 (base 10). Some scientific fields — physical chemistry, information theory — use natural log (ln, base e). The visual axis spacing is the same; the difference is what the tick labels mean.

If the chart uses ln, calibrate at two ln values (e.g., 0 and 4.6 for ln(1) and ln(100)) and treat the axis as linear in those ln values, not log. Then exponentiate with e^value post-export, not 10^value. The cleanest path: convert the chart’s ln labels to their actual values before you start, then proceed with a normal log-base-10 calibration.

When the chart shows log values directly

Some charts plot log10(x) on a linear axis instead of x on a log axis. The axis ticks read 1, 2, 3 instead of 10, 100, 1000.

In this case, calibrate as linear in those tick values. The extracted column is log10(x), not x — apply 10^value post-export to recover the real numbers. Mark this clearly in your output file so the next person doesn’t double-exponentiate.

FAQ

Can I extract data from a log chart if my tool doesn’t support log axes?

Yes. Calibrate as linear in the log-value space (so calibration values of 1, 2, 3 instead of 10, 100, 1000), export, then apply 10^value in a spreadsheet. The output is identical to a tool with native log support.

How accurate is log-axis extraction compared to linear?

On a clean source image, log-axis extraction is no less accurate than linear — the math is identical, just in log space. Errors come from human mistakes (wrong axis type, miscalibrated endpoints), not from the algorithm.

What if the chart has log on both axes (log-log)?

Set both axis types to log and calibrate each at two visible powers of ten. Extracted values are the real numbers in both columns. See the semi-log vs log-log section above.

How do I tell if an axis is log or linear?

Look at the spacing of labeled ticks. If 10 to 100 takes the same visual distance as 100 to 1000, the axis is logarithmic. If 10 to 20 takes the same visual distance as 90 to 100, the axis is linear.

Can I calibrate a log axis at 1 and 100?

Yes, as long as both are visible and labeled. Two orders of magnitude apart is plenty. Wider intervals (e.g., 1 to 10000) are slightly more robust to pixel placement error, but 1-to-100 is fine for most charts.

Does DataFromChart support log axes?

Yes — toggle the axis type in the AXES layer and enter the real values. The tool handles the log interpolation. See the pillar workflow guide for the full four-step method, and the section on log axes specifically in the tricky cases part of that guide.

My exported data is the right shape but wrong magnitude — what happened?

You probably calibrated as linear when the axis is log. The shape is preserved because pixel order is preserved, but the values are linearly interpolated between your two endpoints. Re-calibrate with the axis type set to log.

CTA

Open the extractor, upload a log-scale chart, and toggle the axis to log before exporting. The result is real values you can drop into any analysis tool without post-processing. No login required for a single extraction.