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

问题描述 投票:1回答:1

我创建了两个图形,每个图形都包含一个新的选项卡。但是,只有图2在图上包含“标题”和“标签”,并且还包含应该在图1-tab2上显示的“图例”。有什么建议为什么会发生这种情况?

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

enter image description here

matlab matlab-figure
1个回答
0
投票

行为非常明显(但是花了我一点时间才意识到它^^)。您要打开的最后一个选项卡来自figure_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')
© www.soinside.com 2019 - 2024. All rights reserved.