# Mathematica Basic Plotting Question

Is it possible to plot y = x^2 and x = y^2 on the some graph? For some reason, I can't get it to plot the x = y^2 properly. Here is what I get:

Show[{ Plot[x == y^2, {y, -1, 1}], Plot[y = x^2, {x, -1, 1}]}]


Yes, you just have to change how you think about plotting, a little. Specifically, you are looking for ParametricPlot.

ParametricPlot[{{t, t^2}, {t^2, t}}, {t, -1, 1}]


• This is good to see. Thank you! Commented Nov 22, 2012 at 5:26
• Just wondering, is it possible to fill in the enclosed region? Commented Nov 22, 2012 at 5:28
• @spryno724, that requires an entirely different approach... RegionPlot[x^2 < y && y^2 < x, {x, 0, 1}, {y, 0, 1}] Commented Nov 22, 2012 at 5:29
• Ah... ok. Just thought I would check. Commented Nov 22, 2012 at 5:30

rcollyer's method is the best way of going about it. Here's an alternative:

g = Plot[x^2, {x, -1, 1}];
Show[g, g /. v_ /; VectorQ[v, NumericQ] && Length[v] == 2 :> Reverse[v],
PlotRange -> All]


Here's a more conventional route, tho:

ContourPlot[{y == x^2, x == y^2}, {x, -1, 1}, {y, -1, 1}, Axes -> True, Frame -> False]


Show[ContourPlot[{y == x^2, x == y^2}, {x, -1, 1}, {y, -1, 1}],
RegionPlot[x^2 < y && y^2 < x, {x, 0, 1}, {y, 0, 1}],
Axes -> True, Frame -> False]


For completeness we can mention finding all branches of inverse function. It won't always work, but it is conceptually instructive for simple cases.

f[x_] = x^2; g[x_] = InverseFunction[f][x]


-Sqrt[x]

Plot[{f[x], g[x], -g[x]}, {x, -1, 1}, AspectRatio -> 1, Filling -> {1 -> {3}}]


• ParametricPlot needs Filling as an option! :) Commented Nov 22, 2012 at 6:02
• @rcollyer: orienting the filling would be a bit problematic, tho... Commented Nov 22, 2012 at 6:03
• @rcollyer MeshShading as a remedy ;) Commented Nov 22, 2012 at 6:04
• @J.M. maybe. But, filling between lines would be less difficult. Commented Nov 22, 2012 at 6:10
• @VitaliyKaurov why yes it is, but I'll have to play with that tomorrow. Commented Nov 22, 2012 at 6:10

Using ReflectionTransform:

Clear["Global*"];
ticks = {Range[-3/2, 3/2, 1/2], Range[-3/2, 3/2, 1/2]};
legend = LineLegend[{ColorData[97][1],
Red}, {"y = \!$$\*SuperscriptBox[\(x$$, $$2$$]\)",
"x = \!$$\*SuperscriptBox[\(y$$, $$2$$]\)"}];
g1 = Plot[x^2, {x, -2, 2}
, PlotRange -> {{-3/2, 3/2}, {-3/2, 3/2}}
, AspectRatio -> Automatic
, Ticks -> ticks
];
g2 = RegionPlot[x^2 < y && y^2 < x
, {x, 0, 1}, {y, 0, 1}
, PlotStyle -> Yellow
]; (* Borrowed from J.M. 's answer *)

Legended[
Show[g1
, g1 /. L_Line :> {Red, GeometricTransformation[L
, ReflectionTransform[{-1, 1}]]}
, g2
, Epilog -> {Dashed, InfiniteLine[{{-1, -1}, {1, 1}}]}
]
, legend
]
`