2016-10-01 2 views
-2

차이 조건 : 각 반복 끝에 동적 범례를 지우는 방법. 각 반복의 끝에서 적합한 선형 선을 제거하는 방법.루프의 선형 그래프에서 동적 범례를 얻는 방법?

스레드 Dynamic Legend (Updates in every recursion)의이 대답을 확장하여 하나의 그래프에서 범례를 반복하려고합니다. 2016a
OS : 데비안 8.5 6 비트
리눅스 커널 4.6 제안 한 선형 그래프

close all; clear all; 

% Test data 
aSize=zeros(2,777); 
aSize=[[0, 0]' randi(3,2,777)]; % STDEV about 3 

x=0:1:180; 

hFig=figure; 

index=1; 
while (index<=7); 

    % origo left alone 
    aSize(:, index+1) = aSize(:, index+1) + index; % to have linearly increasing trend 

    sz=40; 
    legend('-DynamicLegend'); 
    h = scatter(aSize(1,1:index+1)', aSize(2,1:index+1)', sz, ... 
      'MarkerEdgeColor',[0 .5 .5],... 
      'MarkerFaceColor',[0 .7 .7],... 
      'LineWidth',1.5, ... 
      'DisplayName', sprintf('Data')); 
    xlabel('width'); ylabel('height'); 
    hold on; 

    % Optimum 
    x=0:1:max(aSize(1, 1:index+1)); 
    y = x; % assume uniform 
    grid on; 
    h1=plot(x,y, 'black', ... 
     'DisplayName', sprintf('Optimum')); 

    % Fit with R2 linear 
    x=aSize(1,1:index+1); 
    b1 = aSize(1,1:index+1)' \ aSize(2,1:index+1)'; 
    yCalc1 = b1 * aSize(1,1:index+1); 
    Rsq1 = 1 - sum((y(1:index+1) - yCalc1).^2)/sum((y(1:index+1) - mean(y(1:index+1))).^2) 

    % origo needed 
    x = [0 x]; 
    yCalc1 = [0 yCalc1]; 
    h2=plot(x(1:index+2)', yCalc1(1:index+2)', '--p', ... 
     'DisplayName', sprintf('Fit R2 = %d', Rsq1)); 

    drawnow; 

    index=index+1; 

end; 

범례 단지

enter image description here

매트랩 첨부되어 출력 실패를에 동적 범례 다루 백 포트의
하드웨어 : Asus Zenbook UX303UA

+1

이전에 플롯 된 데이터를 루프 끝에서 제거하는 방법을 묻는 질문이 있으십니까? –

+1

루프 종료 전에 'hold off'라고 씁니다. 그게 당신이 찾고있는 것을합니까? –

+1

질문에서 대답 부분을 제거했습니다. 질문은 질문 만 포함하기위한 것입니다. 나는 당신의 추가가 이미 당신이 사용했던 대답에 어떤 추가도주지 않았다고 판단 했으므로, 그 질문에 그 점을 갖는 것이 아무런 의미가 없었습니다. 추가 할 내용이 많으면 새로운 대답으로 자유롭게 할 수 있습니다. –

답변

1

이 줄을 제거하고 drawnow 줄 바로 앞에 쓰고 그 줄 다음에 hold off을 씁니다. 따라서 다음은 루프가 끝날 때의 행입니다.

legend('-DynamicLegend'); 
drawnow; 
hold off 
index=index+1; 
관련 문제