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$ Commented Mar 24, 2013 at 2:26
  • $\begingroup$ Could you please upload a sample datafile somewhere so people can help your more easily? $\endgroup$ Commented 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$ Commented 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$ Commented 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$ Commented Mar 24, 2013 at 8:05

4 Answers 4

10
$\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$
1
  • $\begingroup$ Side note: 1. The file extention doesn't need to be .dat, one can explicitly set the format by e.g. Import["data.txt", "Table"]. 2. The headline can be skipped by "HeaderLines" option e.g. Import["data.txt", "Table", "HeaderLines" -> 1]. 3. If the file isn't in working directory, the full directory can be obtained easily by "copy & paste": mathematica.stackexchange.com/a/14741/1871 $\endgroup$ Commented Oct 6 at 8:56
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$ Commented Mar 24, 2013 at 9:21
6
$\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$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.