30

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.

JACKY88
  • 575
  • 2
  • 6
  • 10

2 Answers2

44

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

Eric Thewalt
  • 906
  • 7
  • 9
16

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

Gab
  • 433
  • 3
  • 10
  • Your answer is not wrong, and thank you for contributing. But, how is it different from the other, accepted answer? – Oleksandr R. Apr 26 '14 at 23:19
  • 5
    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. – Gab Apr 26 '14 at 23:21