Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica List Plot

  1. Nov 10, 2004 #1

    cepheid

    User Avatar
    Staff Emeritus
    Science Advisor
    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: Nov 10, 2004
  2. jcsd
  3. Nov 10, 2004 #2
    Try the Thread[] function.

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

    returns

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

    --J
     
  4. Nov 10, 2004 #3

    cepheid

    User Avatar
    Staff Emeritus
    Science Advisor
    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. :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: Nov 10, 2004
  5. Nov 10, 2004 #4
    The PlotRange option might help.

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

    --J
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Mathematica List Plot
  1. Mathematica List Plot (Replies: 2)

  2. Lists in mathematica (Replies: 4)

Loading...