0
$\begingroup$

I have the following figure:

enter image description here

I'd like to reproduce it in Mathematica. It's doable to read the positions of the points by eye and then plot them; but, is there a more precise way of doing it?

$\endgroup$
2
  • $\begingroup$ ListLinePlot with ColorFunction $\endgroup$
    – cvgmt
    Oct 24, 2022 at 8:04
  • $\begingroup$ Oops, didn't realize that my single close vote would result in immediately closing this question. Anyway, you should take a look at that other question first, and if that's insufficient for a solution, ask specifically about issues not already covered in the answers there. $\endgroup$
    – Szabolcs
    Oct 24, 2022 at 8:29

1 Answer 1

4
$\begingroup$

You must first get the coordinates of the points. Toward this aim, enlarge the picture a bit, copy it and paste it into Mathematica. Then right click into the picture and choose "Get Coordinates". Now read the coordinates of the lower left point and store it in: cll. The same for the upper right point: cur. Now define the values of these points as: ll and ur (you may do this more precise):

cll = {48.5, 40};
cur = {332.5, 303};
ll = {5, 2};
ur = {30, 100};

Now read the coordinates of all the points. Out of laziness, I do it only for moi500:

 cmoi500 = {{49, 217.8}, {106, 291}, {162, 303}, {218.5, 303}, {275.5, 
    303}, {332.5, 303}};

Next we transform the coordinate values to real values by:

moi500 = ( # - cll)/ (cur - cll) (ur - ll) + ll & /@ cmoi500 // N

Now we can plot the data (to beatify the plot use more option of ListLinePlot);

ListLinePlot[moi500, AxesOrigin -> {0, 0}, PlotMarkers -> Automatic]

enter image description here

$\endgroup$
2
  • $\begingroup$ Note that your coordinate values will be different as they depend on the magnification. $\endgroup$ Oct 24, 2022 at 8:47
  • $\begingroup$ I took the point that is lowest at x==5. I guessed it to be a little over zero, that is 2. $\endgroup$ Oct 24, 2022 at 12:57