我正在尝试使用方形轴subplot
,但我失败了,在我的部分代码之下。我得到Fig
有两个情节,但每个都有不同的尺寸
for i=1:N
figure
subplot (2,1,1);
plot (r(i,:),p(i,:));
grid on
set(gca, 'XTick', 0:0.5:4)
set(gca, 'YTick', -1:0.15:0.2)
axis square
xlim([0 4]);
ylim([-1 0.2]);
subplot (2,1,2);
[r,y]= meshgrid(linspace(0,4),linspace(0,4));
U =eval(U1);
[~,h] = contour(r,y,U,[0.001 0.01 0.05 0.08 0.1 0.2 0.25 0.3 0.4]);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
colormap cool
grid on
axis square
hold on
xlim([0 4]);
ylim([0 4]);
plot (R,Y,'*r');
hold off
daspect([1 1 1]);
end
答案 0 :(得分:1)
在完成所有绘图后,更改轴的x和y限制后,应调用axis square
。如果在调用axis square
之后更改xlims和ylims ,MATLAB将忘记您希望它是正方形。这是因为没有axes
的属性表明你想要一个方阵,当你根据当前的xlims和ylims以及数据宽高比调用axes square
时,它就会被简单地计算出来。
subplot (2,1,1);
plot (r(i,:),p(i,:));
grid on
set(gca, 'XTick', 0:0.5:4)
set(gca, 'YTick', -1:0.15:0.2)
%// Do not call axis square here
xlim([0 4]);
ylim([-1 0.2]);
%// Call axis square here after you change the x/y limits
axis square