3

我使用以下代码行来绘制图像:

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。

有人可以帮助如何使第一行中的图像看起来像正方形而不是我目前得到的矩形。谢谢。

4

2 回答 2

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])

在此处输入图像描述

于 2012-07-07T23:23:19.973 回答
1

另一种方法是使用命令axis equal

关于不同物体的大小,可以设置图中各轴的准确位置,例如第一个使用: subplot(2,2,1); set(gca,'Position',[0.05 0.05 0.4 0.4])

于 2012-07-08T13:07:32.850 回答