plotting concentric circles using contour

I'm trying to plot a few concentric circles with the following codes, but what I get is an ellipse, i don't know why:
[x,y] = meshgrid(-3:0.1:3,-3:0.1:3);
z = x.^2+y.^2;
contour(x,y,z)

 Respuesta aceptada

Star Strider
Star Strider el 26 de Oct. de 2020
Use the axis function, specifically either:
axis('equal') % Function Expression
or:
axis equal % Command Expression
.

5 comentarios

Randy Chen
Randy Chen el 26 de Oct. de 2020
thanks!
Randy Chen
Randy Chen el 26 de Oct. de 2020
by the way how can I add some radial lines perpendicular to the circles?
That will be diffiicult in contour, although relatively straightforward with plot:
[x,y] = meshgrid(-3:0.1:3,-3:0.1:3);
z = x.^2+y.^2;
[cm,ch] = contour(x,y,z);
hold on
axis('equal')
Lvls = ch.LevelList;
LvlIdx = find(ismember(cm(1,:),Lvls));
LvlNrs = cm(2,LvlIdx);
centre = [mean(cm(1,2:LvlNrs(1))); mean(cm(2,2:LvlNrs(1)))];
angls = linspace(0, 2*pi, 33);
XL = get(gca,'XLim');
YL = get(gca,'Ylim');
plot([centre(1);max(XL(:))]*cos(angls), [centre(2);max(YL(:))]*sin(angls), '-g')
Experiment to get the result you want.
Randy Chen
Randy Chen el 27 de Oct. de 2020
thanks a lot!
Star Strider
Star Strider el 27 de Oct. de 2020
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Contour Plots en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 26 de Oct. de 2020

Comentada:

el 27 de Oct. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by