Mathematica List Plot

• Mathematica
Staff Emeritus
Gold Member
This didn't generate any responses in the software thread, and since this is for a homework assignment, I have moved my query here. Thanks.

Hello:

I have entered data into two lists in Mathematica:

centroidEnergy = {1.3485, 1.4780,
1.6176, 1.7820, 1.9123, 2.0274, 2.1635, 2.3163, 2.4213, 2.5191, 2.6515, \
2.7490, 2.8763, 2.9894, 3.0728, 3.1949, 3.2816, 3.3923, 3.4773, 3.5884, \
3.6804, 3.7702, 3.8374, 3.9679, 4.0507, 4.1507, 4.2163, 4.3145, 4.4039, \
4.5056, 4.5089, 4.6440, 4.7331, 4.8497, 4.9290, 5.0019, 5.0862, 5.1815, \
5.2427, 5.3365, 5.4225, 5.4800}

and

distanceInAir = {2.0523, 2.0020,
1.9517, 1.8964, 1.8511, 1.8008, 1.7505, 1.7002, 1.6499, 1.5996,
1.5493, 1.4990, 1.4488, 1.3984, 1.3481, 1.2979, 1.2476, 1.1520,
1.0967, 1.0464, 0.99606, 0.95079,
0.89546, 0.84516, 0.79486, 0.74456, 0.69426, 0.64396, 0.59366,
0.54336, 0.49306, 0.44276, 0.39247, 0.34217, 0.29186, 0.24157,
0.19269, 0.14097, 0.090671, 0.040371, 0.000132}

I am trying to plot the former vs. the latter. The recommended method I have seen to do so is to Transpose the two lists so that M. creates a list of ordered pairs of corresponding items from each one. Then, ListPlot that. However, I can't get the following command to work: it always gives the ensuing error message:

dataToPlot = Transpose[{distanceInAir, centroidEnergy}]

Transpose :: nmtx :: the first two levels of the one-dimensional list {{2.0523, 2.0020, 1.9517, 1.8964, 1.8511, 1.8008, 1.7505, <<28>> , 0.24157, 0.19269, 0.14097, 0.090671, 0.040371, 0.000132}, {<<1>>}} cannot be transposed.

???

Any ideas on how to simply plot centroidEnergy vs. distanceInAir would be greatly appreciated! Thanks.

Last edited:

Thread[{{1, 2, 3}, {a, b, c}}]

returns

{{1, a}, {2, b}, {3, c}}

--J

Staff Emeritus
Gold Member
Thanks! That actually worked...once I discovered that I had omitted a data point in one of the lists...so one was shorter than the other...grr.

Any idea why the resulting plot in Mathematica would have x and y axes intersecting at some stupid random point instead of at (0,0)?

Edit: When I set AxesOrigin -> {0,0}, the resulting y-axis has a huge gap in it! Why?

Edit2: from the look of things, it's refusing to draw the y-axis below the y-value of the last data point. That's ridiculous! Any idea how to get around it?

Last edited:
The PlotRange option might help.

ListPlot[{...}, PlotRange->{y0, yf}]

--J