Почему графики с вкладками удаляют мой заголовок и ярлыки? - PullRequest
1 голос
/ 03 апреля 2020

Я создал две фигуры, которые содержат новую вкладку для каждого графика. Однако только рисунок 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

1 Ответ

1 голос
/ 03 апреля 2020

Поведение довольно ясное (но мне потребовалось время, чтобы понять это ^^). Последняя вкладка, которую вы открываете, от 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')
...