19
$\begingroup$

I'm new to Mathematica, and I'm finding it difficult to plot an ellipse. I tried using

Plot[(x/5)^2 + (y/3)^2 == 1, {x, -5, 5}, {y, -3, 3}]

but I'm getting some errors. Is there something wrong with the syntax? Or do I need to rewrite the equation and plot?

$\endgroup$
3
  • 2
    $\begingroup$ "Plot generates a plot of f as a function of x from xmin to xmax". So you're using too many variables. $\endgroup$
    – cormullion
    Feb 24, 2013 at 16:05
  • 1
    $\begingroup$ Closely related: Coloring a shape according to a function $\endgroup$
    – Artes
    Aug 26, 2013 at 16:53
  • $\begingroup$ Related: (547), (5968) $\endgroup$
    – Mr.Wizard
    Feb 10, 2017 at 22:44

5 Answers 5

33
$\begingroup$

Even though Mr. Wizard's answer plus comments give the most generalizable answers, the closest to what the original question was doing is probably this:

Plot[y /. Solve[(x/5)^2 + (y/3)^2 == 1], {x, -5, 5}, 
 AspectRatio -> Automatic]

solve plot

The ability to plot two branches of a solution as a single curve is sometimes cited as one of the advantages of the fact that Plot doesn't automatically evaluate its arguments due to its HoldAll attribute (which in other situations causes confusion when you try to plot lists of functions in different colors). Here we want both branches of the square root to appear in the same plot style, and this is automatically recognized. If I had forced the Solve output to be evaluated too early, this plot wouldn't work.

$\endgroup$
22
$\begingroup$

Please see this reference: How To | Create Plots.

You need ContourPlot for that implicitly defined function.
You will also need AspectRatio -> Automatic if you want it to look like an ellipse and not a circle.

ContourPlot[(x/5)^2 + (y/3)^2 == 1, {x, -5, 5}, {y, -3, 3}, AspectRatio -> Automatic]

Mathematica graphics

If you merely want to display an ellipse use Graphics:

Graphics[Circle[{0, 0}, {5, 3}]]

Mathematica graphics

Notice that AspectRatio -> Automatic was not needed; it is the default for Graphics, whereas plot functions default to 1/GoldenRatio.


Jens showed a use of Plot (which I voted for) that illustrates styling two solutions to an equation the same. This is useful, but it is also inefficient as we call Solve again and again. Alternatives are manually specifying the PlotStyle:

sols = y /. Solve[(x/5)^2 + (y/3)^2 == 1, y];

Plot[sols, {x, -5, 5}, PlotStyle -> Blue, AspectRatio -> Automatic]

And using Sequence to group the elements as I described in Plot draws list of curves in same color when not using Evaluate:

Plot[Sequence @@ sols, {x, -5, 5}, AspectRatio -> Automatic]

enter image description here

$\endgroup$
2
  • 6
    $\begingroup$ Another way:ParametricPlot[{ 5 Cos[t], 3 Sin[t]}, {t, -Pi, Pi}, AspectRatio -> Automatic] $\endgroup$
    – ssch
    Feb 24, 2013 at 14:37
  • $\begingroup$ Perhaps this, too: RegionPlot[Abs[(x/5)^2 + (y/3)^2 - 1] < .1, {x, -6, 6}, {y, -4, 4}, AspectRatio -> Automatic, PlotPoints -> 80] $\endgroup$
    – Jens
    Feb 24, 2013 at 17:29
8
$\begingroup$
ParametricPlot[{2*Sin[x], Cos[x]}, {x, 0, 2*Pi}]

Mathematica graphics

$\endgroup$
3
$\begingroup$

Another way is to use the Ellipsoid graphics primitive:

Graphics[{EdgeForm[Black], FaceForm[], Ellipsoid[{0, 0}, {5, 3}]}, Axes -> True]

$\endgroup$
1
$\begingroup$

Use RegionPlot[] (for 2D shapes) or ContourPlot[] (for 1D boundaries):

ContourPlot[(x/5)^2 + (y/3)^2 == 1, {x, -5, 5}, {y, -3, 3}]

enter image description here

$\endgroup$
3
  • $\begingroup$ You might want to set AspectRatio -> Automatic for this. $\endgroup$ Mar 4, 2016 at 14:42
  • 2
    $\begingroup$ It seems to me that the ContourPlot approach was covered previously in Mr.Wizard's answer to this very question, which also included the necessary AspectRatio adjustment already suggested by @J.M. . Perhaps you could expand on your answer to differentiate the two; otherwise this seems a duplicate of his answer to me. $\endgroup$
    – MarcoB
    Mar 4, 2016 at 15:06
  • $\begingroup$ ISTM the earlier answer had too many alternatives and elaborations listed. I didn't even see it mentioning ContourPlot the first times I scrolled through it. $\endgroup$
    – fche
    Mar 8, 2016 at 20:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.