我正在尝试用subplot
绘制里面有三个图的图。所有三个图的y轴从-1
到1
相同,而x轴分别为2.5
,5
和10
。所有三个图的问题x轴对于所有这些图看起来都相似。我尝试使用axis square
,但它将绘图更改为正方形。我希望第一个图从左边开始并在一个点结束,而第二个图从左边开始并在第一个图的x轴的双倍距离处结束。第三个图必须从左边开始,并在x轴是第一个图的x轴的thripple的点处结束。有没有办法做到这一点?
这是一个带有空图的示例,仅用于显示我希望我的图形看起来如何。
我使用下面的代码,但不幸的是它无法正常工作
figure
subplot (3,1,1);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:0.5:2.5)
set(gca, 'YTick', -1:1:1)
xlim([0 2.5]);
ylim([-1 1]);
% axis square
subplot (3,1,2);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:1:5)
set(gca, 'YTick', -1:1:1)
xlim([0 5]);
ylim([-1 1]);
% axis square
subplot (3,1,3);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:2:10)
set(gca, 'YTick', -1:1:1)
xlim([0 10]);
ylim([-1 1]);
% axis square
答案 0 :(得分:5)
您可以使用Position
的{{1}}属性(此处为每个子图)并根据需要自定义它们,使用命名法
axes
其中:
l:离开
b:底部
w:宽度
h:身高
例如为每个子图分配一个句柄:
[l b w h]
并改变他们的位置(这里是标准化单位):
h(1) = subplot(3,1,1)
h(2) = subplot(3,1,2)
h(3) = subplot(3,1,3)
您也可以按照以下方式一步完成:
set(h(1),'Position',[.1 .75 .2 .2])
set(h(2),'Position',[.1 .45 .5 .2])
set(h(3),'Position',[.1 .15 .8 .2])
等
示例输出:
答案 1 :(得分:4)
您可以在subplot命令中稍作修改使用相同的代码。请尝试以下方法:
figure
subplot (3,3,1);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:0.5:2.5)
set(gca, 'YTick', -1:1:1)
xlim([0 2.5]);
ylim([-1 1]);
subplot (3,3,4:5);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:1:5)
set(gca, 'YTick', -1:1:1)
xlim([0 5]);
ylim([-1 1]);
subplot (3,3,7:9);
xlabel('x cm')
ylabel('y cm')
grid on
set(gca, 'XTick', 0:2:10)
set(gca, 'YTick', -1:1:1)
xlim([0 10]);
ylim([-1 1]);