Skip to the digitizer
CDIGIT

Log scale plot digitizer

Read a semi-log or log-log axis by the geometric midpoint, then preview a shared-X matrix.

X midpoint2.5000
Y midpoint1.0000e-5
Log Y midpoint1.0000e-5
Log error0.0000e+0
Log checkpass ≤ 1e-4
R²0.8500
Series1

File Semiconductor MOSFET Drain Current Log10 Plot · 800x520. The picture stays in this browser. Sample: sample-stress-strain.png.

Id

Last point 5.0000 0.1000

Manual points, resample, and exact anchors
Add

10-point check

Free file: the first 10 rows of the active series, columns series, x, y. Width 800 px. PROOF is stamped on the PNG.

Sample rows 10

  1. 0.0000 1.0000e-9
  2. 0.2500 3.2500e-9
  3. 0.5000 5.5000e-9
  4. 0.7500 7.7500e-9
  5. 1.0000 1.0000e-8
  6. 1.2500 2.5750e-7
  7. 1.5000 5.0500e-7
  8. 1.7500 7.5250e-7
  9. 2.0000 1.0000e-6
  10. 2.2500 2.5750e-5

Pro export

Pro replot

Vgs (V) Id (A)
Aligned rows
100
Locked rows
90
Row 1
0.0000 1.0000e-9
Row 10
0.4545 4.7731e-9
  1. 0.1010 1.2819e-9
  2. 0.1515 1.5790e-9
  3. 0.2020 1.9639e-9
  4. 0.2525 2.4241e-9
  5. 0.3030 2.9474e-9
  6. 0.3535 3.5216e-9
  7. 0.4040 4.1342e-9
import matplotlib.pyplot as plt
# 10-point calibration sample for Id. Rows after these 10 stay in the paid archive.
x = [0.0000, 0.2500, 0.5000, 0.7500, 1.0000, 1.2500, 1.5000, 1.7500, 2.0000, 2.2500]
y = [1.0000e-9, 3.2500e-9, 5.5000e-9, 7.7500e-9, 1.0000e-8, 2.5750e-7, 5.0500e-7, 7.5250e-7, 1.0000e-6, 2.5750e-5]
plt.plot(x, y, marker="o")
plt.show()
reproduce_plot.py
reproduce_plot.R
reproduce_plot.m
overlay-verification.svg
overlay-verification.pdf

Unlock Pro research packs for this figure. A 7-day pass is $8.99, the monthly plan is $11.99, and lifetime is $29.

Early Launch Price · 50% Off 7-Day Research & Paper Pass $17.99 $8.99

Launch Offer · Save 50% Monthly Lab & Engineering Plan $23.99 $11.99/month

Best Value · 50% Off Lifetime Researcher License $58.00 $29.00

Pack status idle

Steps

From ticks to a sample

  1. 01 Open the MOSFET curve

    Y is log10 from 1e-9 to 1e-1. The untouched midpoint reads 1.0000e-5.

  2. 02 Replace the Y anchors

    Type 10 and 1000. Keep log10. The halfway pixel must read 100.0000.

  3. 03 Read the error

    Relative error against the square root is 0.0000e+0, inside the 1e-4 check.

  4. 04 Align two curves

    Load Kaplan–Meier, set linear interpolation, and ask for 100 rows. Only ten are printed.

Check

A worked geometric midpoint

Pixel midpoint, t = 0.5. Log rows are geometric means.
AxisAnchorsScaleReadout
Y10 and 1000log10100.0000
Y1e-9 and 1e-1log101.0000e-5
X1 and 100log1010.0000
Relative error10 and 1000log100.0000e+0

Semi-log plots are ordinary in device datasheets and in dose curves. Equal pixel steps are not equal data steps. If you calibrate a log axis with a linear formula, the middle of the page is not the middle of the decade. This bench applies log10 only when that scale is selected.

The default figure is a MOSFET drain curve. Gate voltage is linear from 0 to 5 V. Drain current is log10 from 1 nA to 0.1 A. The six vertices step through 1e-9, 1e-8, 1e-6, 1e-4, 1e-2, and 1e-1. The halfway current, before you edit the anchors, is 1.0000e-5 A.

The acceptance edit replaces those currents with 10 and 1000. You do not need a new picture. The midpoint is a function of the two numbers and the scale, not of the bitmap. After the edit the log Y readout is 100.0000 and the check line contains the 1e-4 threshold because the error is zero.

Log-log mode is both menus set to log10. X anchors of 1 and 100 map the halfway pixel to 10.0000. Y anchors of 10 and 1000 map it to 100.0000. Values at or below zero are blocked with a plain sentence. The readout becomes a dash until both ends are positive.

Formatting follows the magnitude. 100 stays 100.0000. 1e-5 becomes 1.0000e-5. The relative error of a perfect geometric mean is 0.0000e+0. If you ever see fail on the check line, the scale is not log10 or one anchor is not the value you think is on the tick.

Kaplan–Meier is included here because the pain is alignment, not the log. Treatment and control are sampled on different months. A shared X of M rows lets you subtract the curves. M = 100 on 0 to 60 months gives a step of 60/99. Row 10 is month 5.4545.

Linear interpolation on the first segment of treatment, from (0, 1) to (12, 0.92), puts y at 0.9636. Control, from (0, 1) to (10, 0.88), puts y at 0.9345. Those three numbers are the only row-10 text. Rows 11 to 100 increment the locked count to 90.

Monotonic cubic is allowed on the same matrix. It matches linear on a straight segment only when the tangents equal the secant. For the published check, set the method to linear. The drawer is closed until you open it. The select is still the real control, not a second copy of the table.

The paid log zip writes aligned.csv with a header and exactly M data lines. X is strictly increasing even after four-decimal rounding on this month axis, because the step is about 0.606. A second sheet, aligned.xlsx, repeats the same grid for people who paste into a spreadsheet.

If a point carries an SD, or a lower and upper value, the sheet adds Mean, SD, and SE columns. SE is SD divided by the square root of N when N is present. Without N the SE cell is left blank rather than invented. The catalyst bars are the place to read a known SD of 5.

Decade grid lines are drawn on the sheet when Y is log10, from the ceiling of the lower decade to the floor of the upper one. They are a guide for the eye. The numeric check remains the midpoint readout, which you can compare with a calculator’s square root before you export anything.

Stress-strain is on this page so you can flip a linear figure into log-log and back. Loading it resets the anchors to 0 and 10, 0 and 100, both linear. Then you opt into log10 and replace the zeros. Leaving a zero in place is the error state, not a silent clamp to a tiny positive number.

The free canvas still will not hand you the 100-row matrix as a file. You can see ten rows and the locked count. The Matplotlib block on the dock is the ten-point sample, not the full shared-X grid. That split is deliberate: a copied snippet must not replace the paid file.

Nothing here interprets a survival number as medical advice. The curve is ink. The formula page writes the same maps as algebra, including the deskew rotation if the photo of the datasheet is tilted by up to 15 degrees.

Two longer notes sit beside the tool: curve digitizer online formulas and the scientific plot digitizer path for meta-analysis.

Uses

Where the numbers go

FAQ

Questions from the bench

What is the log midpoint of 10 and 1000?

On a log10 axis the halfway pixel is √(10 × 1000) = 100. The readout is 100.0000. The relative error against that square root is 0.0000e+0, which passes the 1e-4 check. Linear mode would have said 505 instead, and that would be the wrong tick.

What does the MOSFET chart read before I edit it?

Y runs from 1e-9 to 1e-1 ampere, log10, and X is linear from 0 to 5 volts. The geometric midpoint is 1e-5, formatted 1.0000e-5 because the absolute value is below 1e-4. The legend reads Id.

How do I switch to log-log?

Set both scale menus to log10, then type anchors that are greater than zero. X from 1 to 100 reads 10.0000 at the halfway pixel. Y from 10 to 1000 reads 100.0000. A zero anchor is rejected because log10 of zero is undefined.

What is row 10 of the Kaplan–Meier matrix?

With linear interpolation and 100 steps, shared X runs from 0 to 60. Row 1 is 0.0000 1.0000 1.0000. Row 10 is 5.4545 0.9636 0.9345. The other 90 rows are a locked count. They are not printed as numbers in the page.

Which file holds the full matrix?

The log-interpolation zip from the paid route. aligned.csv has exactly M data rows, a strictly increasing X, and one column per series. If points include an SD or a lower and upper bar, Mean, SD, and SE columns are added. Unpaid calls return 402.

When is a log value printed in scientific notation?

Log readouts use four fixed decimals when the absolute value is at least 1e-4 and below 1e4. Outside that window they use toExponential(4), so 1e-5 becomes 1.0000e-5. Relative error always uses scientific notation, including a clean zero.

Family

Same engine, different figure