MATLAB: Partial Zoom in subplot function

MATLABpartial zoomsubplot

Hi,
I am trying to zoom one part in the subplot figure. For example, I want to zoom one part of the subplot(2,2,1). I use the axes 'axes('position',[0.3 0.2 0.4 0.4])' function, but it will create a zoom part for the whole figure, rather than zooming the defined subplot. Does anyone know how to zoom the defined area in subplot?
Thanks,
Best regards,
Di

Best Answer

axes('position', ...) does not zoom into the axes. It sets the position of the axes relative to the figure.
To zoom into a section of the axes you need to change the xlim and ylim properties. Also set the data aspect ratio (daspect) if you want to maintain the aspect ratio of the data when zooming.
x = rand(1,200);
y = rand(1,200);
figure()
subplot(2,1,1)
hold on
scatter(x,y)
rectangle('Position',[.6 .2 .2 .4],'EdgeColor','r', 'LineWidth',2)
daspect([1,1,1])
title('full data')
subplot(2,1,2)
hold on
scatter(x,y)
xlim([.6 .8])
ylim([.2 .6])
rectangle('Position',[.6 .2 .2 .4],'EdgeColor','r', 'LineWidth',2)
daspect([1,1,1])
title('zoomed')
Related threads on magnified axes: