Extract the data from a Kaplan-Meier curve

A Kaplan-Meier curve shows survival over time as a step line. The paper prints the curve, not the numbers. For a meta-analysis or a cost-effectiveness model, you need the numbers back. graph2table automatically extracts the data table from a chart image. It is the current state of the art on scientific benchmarks such as ChartX.

Paste the figure below. The tool reads the axes, names each arm from the legend, and returns a table of time and survival for each arm. Every extracted point is drawn on the curve so you can check it before you export.

One row per event

The Custom instructions box below is filled in for you. With this instruction the tool returns the time of each drop and the survival value after it, and ignores the censor tick marks. Reconstruction of patient-level data needs this form. Clear the box if you want a sampled curve instead.

See your chart digitized instantly, free. Create a free account to unlock the data, includes 2 free conversions.


What the tool reads, and what you type

The tool reads

  • Step curves with censor tick marks
  • Two or more arms, named from the legend or the labels in the plot
  • Survival as a proportion or as a percentage, and axes that do not start at zero
  • Figures with confidence bands
  • Low-resolution scans and screenshots

You type

  • The numbers at risk from the table under the figure. The tool does not extract that table.
  • The number of patients in each arm, from the text of the paper.

From curve to patient-level data in three steps

graph2table does step 1. Steps 2 and 3 happen in R.

01

Extract the curve

Paste the figure with the prefilled instruction in place. Check the overlay and export the table as CSV, one column per arm.

02

Add the numbers at risk

Type the numbers at risk at each printed time from the table under the figure. There are usually six to eight per arm.

03

Reconstruct the patient-level data

Run the Guyot algorithm with the curve data and the numbers at risk. The R package IPDfromKM does this. The result is a pseudo patient-level dataset for a hazard ratio or a parametric fit.


Check before you trust

A reconstructed hazard ratio is only as good as the digitized steps. The tool draws every extracted point on the figure. Four anchors show how the tool maps pixel positions to data values. If the overlay is not aligned, move an anchor onto its tick mark. Check the tail of the curve with care. Few patients remain there, and each step is large.


Frequently asked questions

Does the tool read the censor tick marks?

It ignores them as data points, so the survival values stay correct. It does not report the censoring times. If you need them, read them from the figure by hand.

Does the tool read the numbers-at-risk table?

No. The table under the figure is not extracted. Type the numbers into your reconstruction script. There are usually six to eight per arm.

Can I get every step of the curve?

Yes. The Custom instructions box on this page is filled in for that. The tool returns the time of each drop and the survival value after it. On dense curves with hundreds of events it can still sample.

Which export formats are available?

Excel, CSV, and the clipboard. Each arm is a column. The API returns the same table as JSON.

Is it free?

You can try it without an account and see the result. A free account includes 2 full conversions with Excel and CSV export. After that, you buy credit packs. The credits do not expire.


More on plot digitizing

The same tool reads line charts, scatter plots, and bar charts. Compare it with a manual digitizer, or read how the accuracy is verified.