19

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?

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
Sriram
  • 191
  • 1
  • 1
  • 3

5 Answers5

33

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.

Jens
  • 97,245
  • 7
  • 213
  • 499
22

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

Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
  • 6
    Another way:ParametricPlot[{ 5 Cos[t], 3 Sin[t]}, {t, -Pi, Pi}, AspectRatio -> Automatic] – ssch Feb 24 '13 at 14:37
  • Perhaps this, too: RegionPlot[Abs[(x/5)^2 + (y/3)^2 - 1] < .1, {x, -6, 6}, {y, -4, 4}, AspectRatio -> Automatic, PlotPoints -> 80] – Jens Feb 24 '13 at 17:29
8
ParametricPlot[{2*Sin[x], Cos[x]}, {x, 0, 2*Pi}]

Mathematica graphics

s0rce
  • 9,632
  • 4
  • 45
  • 78
3

Another way is to use the Ellipsoid graphics primitive:

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

Greg Hurst
  • 35,921
  • 1
  • 90
  • 136
1

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

fche
  • 119
  • 2