这应该很简单——但似乎并非如此。我只是想要一个有五个相邻的子图的图形 - 中间没有空格。此外,第一个棘手的部分可能是我想要第一个使用 floatAxisX 的子图。
假设我有四个变量:
x1 = salinity
x2 = temperature
x3 = density
y = depth
所以我的代码如下所示:
figure;
hfig = figure('Name','xxx');
set(gcf,'Position',get(0,'ScreenSize'))
set(hfig,'color','w');
subplot(151);set(subplot(151),'Position',[0.15 0.15 0.15 0.75]);
% plot salinity vs depth
hl1=plot(x1,y,'k-');
% assign current axis handle to variable for later reference if needed
ax1=gca;
% set properties of the axes
set(ax1,'XMinorTick','on','ydir','reverse', 'ytick',[0:25:150],'box','on','xcolor',get(hl1,'color'))
% add 1st floating axis for the second parameter (temperature) plotted
[hl2,ax2,ax3] = floatAxisX(x2,y,'r:','Temperature (C)',[5 15 0 150]);
set(ax2,'ydir','reverse','ytick',[0:25:150])
% add 2nd floating axis for the third parameter (density) plotted
[hl3,ax4,ax5] = floatAxisX(x3,y,'b--','Density (Kg m^-^3)',[24 27 0 150]);
set(ax4,'ydir','reverse','ytick',[0:25:150]);
subplot(152);set(subplot(152),'Position',[0.31 0.35 0.15 0.55]);
例如,我有不同的情节放在一起使用hold on
:
plot(x1,y);axis ij;
subplot(153);set(subplot(153),'Position',[0.46 0.35 0.15 0.55]);
plot(x1,y);axis ij;
subplot(154);set(subplot(154),'Position',[0.61 0.35 0.15 0.55]);
plot(x1,y);axis ij;
subplot(155);set(subplot(155),'Position',[0.76 0.35 0.15 0.55]);
plot(x1,y);axis ij;
请注意,只需执行以下操作
subplot(151);set(subplot(151),'Position',[0.15 0.15 0.15 0.75]);
subplot(152);set(subplot(152),'Position',[0.31 0.35 0.15 0.55]);
subplot(153);set(subplot(153),'Position',[0.46 0.35 0.15 0.55]);
subplot(154);set(subplot(154),'Position',[0.61 0.35 0.15 0.55]);
subplot(155);set(subplot(155),'Position',[0.76 0.35 0.15 0.55]);
只给了我一个数字,最后三个子图彼此相邻。我将不胜感激得到一些解释为什么会发生这种情况以及如何解决它。