我使用以下代码行来绘制图像:
for t=1:subplotCol
subplot(subplotRow,subplotCol,t)
imagesc([1 100],[1 100],c(:,:,nStep*t));
colorbar
xlabel('X-axis')
ylabel('Y-axis')
title(['Concentration profile at t_{',num2str(nStep*t),'}'])
subplot(subplotRow,subplotCol,subplotCol+t)
hold on;
plot(distance,gamma(:,1,t),'-ob');
plot(distance,gamma(:,2,t),'-or');
plot(distance,gamma(:,3,t),'-og');
xlabel('h');ylabel('\gamma (h)');
legend(['\Theta = ',num2str(theta(1))],...
['\Theta = ',num2str(theta(2))],['\Theta = ',num2str(theta(3))]);
end
我得到以下带有图像的子图:
如您所见,第一行中的图像现在在X轴和Y轴上均匀缩放(Y轴比X轴长),即使第一行上的每个图像的图像矩阵大小为100x100。
有人可以帮助我解决第一行中的图像看起来像正方形而不是我目前得到的矩形。感谢。
答案 0 :(得分:5)
使用轴的dataAspectRatio
属性,并将其设置为[1 1 1]
%# create a test image
imagesc(1:10,1:10,rand(10))
%# you should use the handle returned by subplot
%# instead of gca
set(gca,'dataAspectRatio',[1 1 1])
答案 1 :(得分:1)
另一种方法是使用命令axis equal
关于不同对象的大小,您可以设置图上每个轴的确切位置,例如第一次使用时:
subplot(2,2,1); set(gca,'Position',[0.05 0.05 0.4 0.4])