Mathematica Plotting centroidEnergy vs. distanceInAir with Mathematica ListPlot

AI Thread Summary
The user is attempting to plot centroidEnergy against distanceInAir in Mathematica but encountered an error when trying to transpose the lists due to a mismatch in their lengths. After resolving the issue by correcting the data points, they successfully used the Thread function to create ordered pairs for plotting. However, they faced challenges with the plot's axes, specifically that they intersect at an unexpected point rather than (0,0). Adjusting the AxesOrigin option led to a large gap on the y-axis, and they are seeking solutions to ensure the y-axis displays correctly below the last data point. The discussion highlights the importance of data integrity and plot customization in Mathematica.
cepheid
Staff Emeritus
Science Advisor
Gold Member
Messages
5,197
Reaction score
38
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:
Physics news on Phys.org
Try the Thread[] function.

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

returns

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

--J
 
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. :smile:

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
 

Similar threads

Back
Top