MATLAB: How to stop patch from making the squares into rectangles

patch

Hi all,
I am trying to call patch multiple times to draw multiple squares. I am using patch because even though I am currently drawing squares, I am planning to draw a more complex polygon later on.
However I am facing a problem: even though the coordinates should create a 1×1 size square, matlab is stretching my polygon and drawing a rectangle. Additionally, I want my squares to be bigger, but changing my 1×1 square to a 2×2 square does not change the size. How can I adjust the polygon drawn by patch? It's ok for my squares to resize if I maximize/ stretch the figure, but I want some control over the initial size and shape.
Here is some code which produces the unexpected result:
x1 = [0 1 1 0];
y1 = [0 0 1 1];
x2 = [1.2 2.2 2.2 1.2];
y2 = [0 0 1 1];
x3 = [2.4 3.4 3.4 2.4];
y3 = [0 0 1 1];
patch(x1,y1, 'red')
patch(x2,y2, 'blue')
patch(x3,y3, 'green')
Here is the figure:
rectangles.png
I can tell by reading the axes of the chart that my 'squares' are 1×1, but the figures drawn are rectangles. I want to make them squares.
I would really appreciate help with this. I have tried both 'truesize' and set(gcf,'Resize','off') but they stop the figure from resizing and do not force my squares to be 1 pixel by 1 pixel as I expected.

Best Answer

Hi,
you can add to your code the following line:
axis equal
In this way you obtain the following result:
Square.PNG
You can see:
to have control on axes appearance.
Hope this helps.