Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

Anybody have any experience with software (preferably free, preferably open source) that will take an image of data plotted on cartesian coordinates (a standard, everyday plot) and extract the coordinates of the points plotted on the graph?

Essentially, this is a data-mining problem and a reverse data-visualization problem.

share|improve this question
2  
For one solution, see the comments to this reply. Open source solutions would include image processing or raster GIS software (GRASS is a likely candidate) or, perhaps, GNU Octave. I'm mentioning these as a comment because I haven't used either for this specific purpose, so please take them as possibilities, not as definite solutions. – whuber Aug 18 '11 at 4:20
I'm hoping for code/software specifically for scraping graphs, and I remember such packages existed, at least they did 10 yrs ago, but I can't remember their names now, and don't know if they work on current operating systems. – Alex Holcombe Aug 18 '11 at 4:56
@Alex, try googling "Graph Digitizer Open Source" – David Aug 18 '11 at 5:52
3  
It would be great if the answers also explained how it works or how well. Now I just have to investigate all the links to judge whether I should upvote or not – Ivo Flipse Aug 18 '11 at 12:58
@Ivo I added an explanation to my answer – David Aug 19 '11 at 3:13

5 Answers

up vote 19 down vote accepted

Check out the digitize package for R. Its designed to solve exactly this sort of problem.

/edit: No longer on CRAN, but you can still get it from R-Forge.

share|improve this answer
That worked, and is perfect because I use R! – Alex Holcombe Aug 18 '11 at 10:40
@Alex Holcombe glad to help out! I stumbled across digitize a while ago, and thought it was pretty cool. I haven't needed to use it yet, but it's on my mental list of "cool R packages." – Zach Aug 18 '11 at 18:06
2  
There is a nice article / tutorial in R Journal, June 2011 – David Aug 23 '11 at 22:56
The digitize package is no longer available... :-( – Adam Ryczkowski Dec 1 '12 at 7:09
@Adam Ryczkowski It looks like it's on R-forge still though: r-forge.r-project.org/R/?group_id=594 – Zach Dec 1 '12 at 16:29

What you are looking for is graph digitizing software. They all work pretty much the same:

  1. upload an image
  2. set the x and y scales by indicating the values at two points on each axis
  3. indicate if the scale is linear, log, etc,
  4. click on the points.
    • Some of the programs automatically recognize lines or points. I am usually after points, and I find them too inconsistent to be helpful even with 100s of points. I have not found one that recognizes different symbols. This feature could be worth the trouble for digitizing lines, but I have never had to do this.

The program returns each point as an x-y matrix.

Often it helps selecting points if the image is zoomed, either by uploading a zoomed version of the image or using the zooming feature available in some of the programs.

I have experience using the following programs:

  • Digitizer (shareware) auto point / line recognition. Available in Ubuntu repository (engauge-digitizer)
  • Get Data (shareware) has zoom window, auto point / line recognition
  • DigitizeIt (shareware) auto point / line recognition
  • ImageJ (open source, most extensible after R digitize)
  • R digitize (free, open source), because it simplifies the processs of getting data from the graph into an analysis by keeping all of the steps in R. See the tutorial in R-Journal
  • GrabIt! (free demo, $69) Excel plug-in

All of these worked fine. Except in contexts where measurement error is very small, error from graph scraping is insignificant (e.g. error from digitization << size of error bars or uncertainty in the estimate). If have not tested the accuracy of any of these programs, but it would be interesting to compare among users, among programs, and against the results of reproduced statistical analyses.

share|improve this answer
Awesome edit @David, that was a great improvement! – Ivo Flipse Oct 12 '11 at 19:26
+1 for the effort put into explanation. – naught101 Apr 20 '12 at 1:40

I haven't used it, but UWA CogSci lab recommend DataThief (shareware).

share|improve this answer

Check out engauge. Its free and open source http://digitizer.sourceforge.net/

share|improve this answer
I'd vote for this one. – Adam Ryczkowski Dec 1 '12 at 7:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.