Re: ListPlot, Inverse plotting
- To: mathgroup at smc.vnet.net
- Subject: [mg90678] Re: ListPlot, Inverse plotting
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 19 Jul 2008 04:48:34 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <g5pivh$qav$1@smc.vnet.net>
Richard Trilling wrote: > I want to do a standard ListPlot but I would like to inverse the x-axis > values such that the maximum is to the left of the minimum. > > Is there an easy way to do that with the options of ListPlot? No. However, you may manipulate and transform the graph as you would do with any other Mathematica expression. You can see the expression thanks to FullForm[]. Also, note that the option Joined set to True changes the Point graphic directive to Line, and that the same idea of manipulating the graph expression works if you had a Plot rather than a ListPlot. Below are some examples -- not optimized for anything since the real expressions depends on your actual code/plot/data. xmin = -2; xmax = 4; data = Table[{x, E^x}, {x, xmin, xmax, (xmax - xmin)/100}]; g = ListPlot[data, PlotRange -> {{xmin, xmax}, Automatic}, Ticks -> {Table[{n, n}, {n, xmin, xmax}], Automatic}] FullForm[g] Show[g /. l_Point :> (l /. {x_?NumberQ, y_?NumberQ} -> {-x, y}), PlotRange -> {{-xmax, -xmin}, Automatic}, Ticks -> {Table[{n, -n}, {n, -xmax, -xmin}], Automatic}] g = ListPlot[data, Joined -> True, PlotRange -> {{xmin, xmax}, Automatic}, Ticks -> {Table[{n, n}, {n, xmin, xmax}], Automatic}] FullForm[g] Show[g /. l_Line :> (l /. {x_?NumberQ, y_?NumberQ} -> {-x, y}), PlotRange -> {{-xmax, -xmin}, Automatic}, Ticks -> {Table[{n, -n}, {n, -xmax, -xmin}], Automatic}] g = Plot[E^x, {x, xmin, xmax}, PlotRange -> {{xmin, xmax}, Automatic}, Ticks -> {Table[{n, n}, {n, xmin, xmax}], Automatic}] FullForm[g] Show[g /. l_Line :> (l /. {x_?NumberQ, y_?NumberQ} -> {-x, y}), PlotRange -> {{-xmax, -xmin}, Automatic}, Ticks -> {Table[{n, -n}, {n, -xmax, -xmin}], Automatic}] Regards, -- Jean-Marc