Как обновить сюжет с двумя подзаговорами в MATLAB? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть функция в MATLAB, и она строит две кривые, и я запускаю ее два раза.

На первом графике графика времени, как вы видите красным цветом (первый график) и после этого поворота«удержать» и снова выполнить мою функцию с зеленым цветом (вторая фигура).

Проблема в том, что левый подзаговор не работает и удаляет первую кривую (красная кривая), но вторая работает нормально(последний сюжет).

Мой основной сценарий:

% some code to processing
...
roc('r.-',data); %this function plots my curves

и при втором запуске

% some code to processing
...
plot on
roc('g.-',data);

, а моя функция roc содержит:

%some code
...

  subplot(1,2,1)
    hold on
    HCO1=plot(xroc(J),yroc(J),'bo');
    hold off
    legend([HR1,HRC1,HCO1],'ROC curve','Random classifier','Cut-off 
point','Location','NorthOutside')
    subplot(1,2,2)
    hold on
    HCO2=plot(1-xroc(J),yroc(J),'bo');
    hold off
    legend([HR2,HRC2,HCO2],'ROC curve','Random classifier','Cut-off 
point','Location','NorthOutside')
    disp(' ')
%....

enter image description here

1 Ответ

1 голос
/ 17 апреля 2019

Предполагая, что ваша roc функция вычисляет xroc и yroc Я предлагаю вам переписать свой код для его модульной

function [xroc,yroc] = roc(data)
%your algorithm or training code
%xroc=...
%yroc=...
end

таким образом, вашОсновной сценарий можно отредактировать примерно так:

%first run
[xroc1,yroc1] = roc(data);
%...some further processing with data variable
[xroc2,yroc2] = roc(data);
%plots
ax1 = subplot(1,2,1,'nextplot','add');          %create left axes
ax2 = subplot(1,2,2,'nextplot','add');          %create right axes (mirrored roc)
%now you can go ahead and make your plots
%first the not mirrored plots
plot(xroc1,yroc1,'r','parent',ax1);
plot(xroc2,yroc2,'g','parent',ax1);
%and then the mirrored plots
plot(1-xroc1,yroc1,'r','parent',ax2);
plot(1-xroc2,yroc2,'g','parent',ax2);

переписать немного, но это, безусловно, поможет сделать ваш код масштабируемым, если вы хотите добавить больше двух кривых в будущем.

...