axis equal - a bug in the function?

Hi,
when executing following
plot(1:10)
axis equal
I'm getting a figure as below, which seems not to comply with the definition of the equal: "Use the same length for the data units along each axis"

Respuestas (2)

Peter Nave
Peter Nave el 26 de Dic. de 2020

0 votos

The units ARE the same, take a ruler and measure them on the monitor!
Bruno Luong
Bruno Luong el 26 de Dic. de 2020
Editada: Bruno Luong el 26 de Dic. de 2020

0 votos

It is. The unit length is the same, not the total length of the axis.
If you want to enforce the limits use xlim/ylim commands after axis equal.

6 comentarios

michael
michael el 26 de Dic. de 2020
So it is not clear to me what is the difference comparing to
plot(1:10)
Bruno Luong
Bruno Luong el 26 de Dic. de 2020
Editada: Bruno Luong el 26 de Dic. de 2020
Matlab adjusts the plot limits covers your data. The command "axis equal" does not touch the axis limits so that they are equal.
All it warranty is the aspect ratio: 1 unit of xaxis == 1 unit of yaxis when rendering on the screen. (unit length)
Stephen23
Stephen23 el 26 de Dic. de 2020
Editada: Stephen23 el 26 de Dic. de 2020
"So it is not clear to me what is the difference comparing to "
Not much because your X and Y data ranges are the same. If you plotted some data with different X and Y ranges the equal unit length set by axis equal would be much clearer (note that MATLAB automatically fits the entire data range to within the axes whilst keeping the unit lengths the same):
X = 0:10;
Y = 2*X;
plot(X,Y,'-*')
axis equal
michael
michael el 26 de Dic. de 2020
Rest my case - you have same issue. The scale is 20, but on your x axis, you have more than 20 points.
Bruno Luong
Bruno Luong el 26 de Dic. de 2020
Editada: Bruno Luong el 26 de Dic. de 2020
"you have same issue"
No he has not. You simply fail to understand what "axis equal" does despite of three people telling you what it suppose to do.
You are stuck in your onw logic which is NOT "axis equal" supposes to do.
Stephen23
Stephen23 el 26 de Dic. de 2020
Editada: Stephen23 el 26 de Dic. de 2020
"Rest my case - you have same issue. The scale is 20, but on your x axis, you have more than 20 points."
The axis documentation does not state anything about how many units (i.e. the range) will be displayed for each of the axes, it only defines that their unit lengths will be the same: "equal Use the same length for the data units along each axis." For some reason you seem to be confusing the data range with unit length.
The statement "you have more than 20 points." is in any case incorrect: there are exactly eleven data points plotted on the axes in my previous comment (I just added a marker so that everyone can count them).

Iniciar sesión para comentar.

Categorías

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

Productos

Versión

R2020b

Etiquetas

Preguntada:

el 26 de Dic. de 2020

Editada:

el 26 de Dic. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by