2
$\begingroup$

I would like to know how to plot when I have a large number of points (arround 600) in a specific format:

X          Y
1.000E-03 1.251E+01 
1.500E-03 1.201E+01 
2.000E-03 1.144E+01 
2.484E-03 1.088E+01 
2.484E-03 1.088E+01 
2.534E-03 1.082E+01 
2.586E-03 1.076E+01 
2.586E-03 1.076E+01 
3.000E-03 1.027E+01 
3.066E-03 1.019E+01 
3.066E-03 1.019E+01 

All I need is to draw a line trought those points, but it would be anoying to write points in format (x1,y1), (x2,y2), .... It would be tedious if I had to insert the commas and braces by hand for every pair of points coordinates.

I'm totaly new in Mathematica and I would appreciate help.

$\endgroup$
9
  • 2
    $\begingroup$ Why do you want to do it with Mathematica, if you don't know anything about it? Is this some kind of homework? $\endgroup$ Mar 24, 2013 at 2:26
  • $\begingroup$ Could you please upload a sample datafile somewhere so people can help your more easily? $\endgroup$
    – s0rce
    Mar 24, 2013 at 2:41
  • 1
    $\begingroup$ If your data is in a file and in the format you show, you can use the Import function to read it in and convert it to a list of points that Mathematica can process. $\endgroup$
    – m_goldberg
    Mar 24, 2013 at 3:40
  • 1
    $\begingroup$ I recall a day not so long ago where I felt exactly the same way as this user (w.r.t. adding braces and commas to data). I see no reason to down-vote the question. For those who are used to Excel and SPSS etc. basic importing of data isn't as trivial as it might seem to a seasoned M programmer. $\endgroup$
    – Andy Ross
    Mar 24, 2013 at 4:37
  • 2
    $\begingroup$ The downvoting is (I presume) to encourage people to read the documentation first and then post a question once that fails to deliver enlightenment (which can happen...). Here, it's not clear whether the OP has found the documentation yet. $\endgroup$
    – cormullion
    Mar 24, 2013 at 8:05

4 Answers 4

9
$\begingroup$

Here is a complete walkthrough to expand on Zahra's answer a little. I'm assuming that the exact contents of the example in your question is saved in a text (ASCII) file data.dat in your home directory (or the current working directory of your notebook).

dataContent = Import["data.dat"]

(*
==> {{"X", "Y"}, {0.001, 12.51}, {0.0015, 12.01}, {0.002, 
  11.44}, {0.002484, 10.88}, {0.002484, 10.88}, {0.002534, 
  10.82}, {0.002586, 10.76}, {0.002586, 10.76}, {0.003, 
  10.27}, {0.003066, 10.19}, {0.003066, 10.19}}
*)

dataPoints = Rest[dataContent]

(*
==> {{0.001, 12.51}, {0.0015, 12.01}, {0.002, 11.44}, {0.002484, 
  10.88}, {0.002484, 10.88}, {0.002534, 10.82}, {0.002586, 
  10.76}, {0.002586, 10.76}, {0.003, 10.27}, {0.003066, 
  10.19}, {0.003066, 10.19}}
*)

labels = First[dataContent]

(* ==> {"X", "Y"} *)

ListLinePlot[dataPoints, Frame -> True, FrameLabel -> labels]

plot

By the way, if you don't want to see the long list output after the Import command, end the line with a semicolon ; so that no result is returned. Same for the other lines. I just allowed it to print the resulting lists so you can see what's happening.

$\endgroup$
8
$\begingroup$

Save your file as e.g. data.dat . Use Import to import your data to mathematica, then just plot it. And have a look at this link: http://reference.wolfram.com/mathematica/tutorial/ImportingAndExportingData.html

Good luck :)

$\endgroup$
1
  • $\begingroup$ Thank you all for quick answer. You were very helpfull. (And for those who asks why am I using Mathematica, answer is I see it's much more elegant then other programs (Mathlab or Excel) $\endgroup$
    – rtm86
    Mar 24, 2013 at 9:21
5
$\begingroup$

Just to note that ImportString can be useful here, if the data is on the clipboard rather than saved in a file. Just type

data = ImportString["", "Table"];

into a notebook and paste the data between the quotes.

$\endgroup$
3
$\begingroup$

For one-off plotting of a moderate amount of data one of my favorite methods is to use Szabolcs's Paste Tabular Data palette. With this installed you just copy your data to the clipboard then click the Table button:

Mathematica graphics

and the data is pasted in a format Mathematica can use. I add // ListLinePlot to plot:

{{0.001`, 12.51`}, {0.0015`, 12.01`}, {0.002`, 11.44`}, {0.002484`, 10.88`}, {0.002484`, 
   10.88`}, {0.002534`, 10.82`}, {0.002586`, 10.76`}, {0.002586`, 10.76`}, {0.003`, 
   10.27`}, {0.003066`, 10.19`}, {0.003066`, 10.19`}} // ListLinePlot

Mathematica graphics

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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