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

Why does tabbed plots remove my title and labels?

我创建了两个图,每个图都包含一个新选项卡。 但是,只有图 2 在图上包含 "title" 和 "labels",它还包含应该在图 1 - tab2 上的 "legend"。 有什么建议为什么会这样吗?

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

行为非常清楚(但我花了一点时间才意识到它^^)。 您打开的最后一个标签来自 figure_handle(2)。所以这是活跃的。你在没有指定轴的情况下绘制的所有内容都会出现在这个数字中......所以你透支了这个 figure/tab/whatever.

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

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