Matlab 为什么选项卡式绘图会删除我的标题和标签?

Matlab 为什么选项卡式绘图会删除我的标题和标签?,matlab,matlab-figure,Matlab,Matlab Figure,我已经创建了两个图形,其中包含每个绘图的新选项卡。 然而,只有图2包含了绘图上的“标题”和“标签”,它还包含了图1-表2中应该包含的“图例”。 有什么建议可以解释为什么会发生这种情况吗 figure_handles(1).mainfig = figure; figure_handles(1).tabgroup = uitabgroup; figure_handles(2).mainfig = figure; figure_handles(2).tabgroup = uitabgroup; %

我已经创建了两个图形,其中包含每个绘图的新选项卡。 然而,只有图2包含了绘图上的“标题”和“标签”,它还包含了图1-表2中应该包含的“图例”。 有什么建议可以解释为什么会发生这种情况吗

figure_handles(1).mainfig = figure;
figure_handles(1).tabgroup = uitabgroup;
figure_handles(2).mainfig = figure;
figure_handles(2).tabgroup = uitabgroup;

% Fig1, tab1
newtab = uitab(figure_handles(1).tabgroup, 'Title', "tab1");
ax1 = axes(newtab); 
plot(ax1,rand(1,100)*10,rand(1,100)*10);
title('FIG 1')
xlabel('X label')
ylabel('Y label')

% Fig2, tab1
newtab = uitab(figure_handles(2).tabgroup, 'Title', "tab1");
ax = axes(newtab); 
plot(ax,rand(1,100)*10,rand(1,100)*10);
title('FIG 2')
xlabel('X label')
ylabel('Y label')

% Fig1, tab2 with legend
newtab = uitab(figure_handles(1).tabgroup, 'Title', "tab2");
ax3 = axes(newtab);
plot(ax3,rand(1,100)*10,rand(1,100)*10);
hold on
plot(ax3,rand(1,100)*10,rand(1,100)*10);
legend('1', '2')
title('FIG 1')
xlabel('X label')
ylabel('Y label')
hold off

行为非常清楚(但我花了一点时间才意识到它^^)。 您打开的最后一个选项卡来自
图\u handle(2)
。所以这是积极的。您在未指定轴的情况下绘制的所有图形都会显示为此图形。。。所以你把这个数字/标签/任何东西都透支了

指定希望这些东西出现的轴将解决您的问题(我缩短了变量名,只是为了更好地遵循代码)

fh = struct();
fh(1).fig = figure;
fh(1).tbgrp = uitabgroup;
fh(2).fig = figure;
fh(2).tbgrp = uitabgroup;

% Fig1, tab1
newtab = uitab(fh(1).tbgrp, 'Title', "tab1");
ax1 = axes(newtab); 
plot(ax1,rand(1,100)*10,rand(1,100)*10);
title(ax1,'FIG 1')
xlabel(ax1,'X label')
ylabel(ax1,'Y label')


% Fig2, tab1
newtab = uitab(fh(2).tbgrp, 'Title', "tab1");
ax2 = axes(newtab); 
plot(ax2,rand(1,100)*10,rand(1,100)*10);
title(ax2,'FIG 2')
xlabel(ax2,'X label')
ylabel(ax2,'Y label')

% Fig1, tab2 with legend
newtab = uitab(fh(1).tbgrp, 'Title', "tab2");
ax3 = axes(newtab);
plot(ax3,rand(1,100)*10,rand(1,100)*10);
hold(ax3, 'on')
plot(ax3,rand(1,100)*10,rand(1,100)*10);
legend(ax3,'1', '2')
title(ax3,'FIG 1')
xlabel(ax3,'X label')
ylabel(ax3,'Y label')
hold(ax3, 'off')