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}]}]
Thank you for your time.
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}]
RegionPlot[x^2 < y && y^2 < x, {x, 0, 1}, {y, 0, 1}]
$\endgroup$
Commented
Nov 22, 2012 at 5:29
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]
To see the filled version being asked in the comments:
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! :)
$\endgroup$
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
]