23
$\begingroup$

I have two lists of values

xx = {0.1, 0.3, 0.35, 0.57, 0.88, 1.0}
yy = {1.2, 3.5, 4.5, 7.8, 9.0, 12.2}

I want to make a scatter plot (list plot) with xx as x axis and yy as y axis. The help document on ListPlot tells me I have to use

ListPlot[{{x1, y1}, {x2, y2}, ...}]

How do I create something like

ListPlot[{{0.1, 1.2}, {0.3, 3.5}, ...}]

from xx and yy? Thank you.

$\endgroup$
  • 1
    $\begingroup$ Change square brackets [...] to braces {...} in the definitions of xx and yy. Check the documentation for Transpose and/or Thread $\endgroup$ – kglr Mar 23 '13 at 1:42
  • $\begingroup$ @kguler Thank you. $\endgroup$ – Patrick Li Mar 23 '13 at 2:16
35
$\begingroup$

First off, your syntax is incorrect; you need to use braces to define your lists:

xx = {0.1, 0.3, 0.35, 0.57, 0.88, 1.0};
yy = {1.2, 3.5, 4.5, 7.8, 9.0, 12.2};

You can then create a 2x6 matrix from xx and yy, and transpose it to get a 6x2 matrix of pairs, which is the correct format:

data = Transpose@{xx, yy};
ListPlot[data]

Mathematica graphics

$\endgroup$
  • $\begingroup$ Great, Thank you. BTW: why did you write Transpose@{xx, yy} instead of Transpose[{xx, yy}]? $\endgroup$ – Patrick Li Mar 23 '13 at 2:15
  • $\begingroup$ @PatrickLi, because they mean exactly the same thing. Look up Prefix in the documentation center. $\endgroup$ – RunnyKine Mar 23 '13 at 2:24
  • $\begingroup$ @RunnyKine Got it. Thank you. $\endgroup$ – Patrick Li Mar 23 '13 at 2:27
9
$\begingroup$

If you have

xx = {0.1, 0.3, 0.35, 0.57, 0.88, 1.0}
yy = {1.2, 3.5, 4.5, 7.8, 9.0, 12.2}

you can do

Thread[{xx, yy}]

which gives

{{0.1, 1.2}, {0.3, 3.5}, {0.35, 4.5}, {0.57, 7.8}, {0.88, 9.}, {1., 
  12.2}}

and then

ListPlot[{{0.1`, 1.2`}, {0.3`, 3.5`}, {0.35`, 4.5`}, {0.57`, 
   7.8`}, {0.88`, 9.`}, {1.`, 12.2`}}]

enter image description here

So

ListPlot[Thread[{xx, yy}]]

is the answer.

Kind regards

$\endgroup$
  • $\begingroup$ Your answer is not wrong, and thank you for contributing. But, how is it different from the other, accepted answer? $\endgroup$ – Oleksandr R. Apr 26 '14 at 23:19
  • 4
    $\begingroup$ I used Thread instead of Transpose. So you are right, when you say, the result is exactly the same. It's just a little different solution. $\endgroup$ – Gab Apr 26 '14 at 23:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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