Choice between legends and curves
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi,
I have in one plot more curves.
If I press pushbutton1, then I need to show off legend1 and also curve1. If I press again pushbutton1, then I need to show on legend1 and also curve1.
If I press pushbutton2, then I need to show off legend2 and also curve2.If I press pushbutton2, then I need to show on legend2 and also curve2. . . . Please, can you help me
채택된 답변
Sean de Wolski
2013년 4월 15일
편집: Sean de Wolski
2013년 4월 15일
Here is how I would go about this:
function showTwoLines
%two lines and their legend
hFig = figure;
hL(1) = plot(1:10);
hold on
hL(2) = plot(rand(1,10));
legend(hL, 'Line 1','Line 2')
%two pushbuttons. Note the callback passes in the line handles and the line of choice index.
uicontrol('Style','pushbutton',...
'Units','normalized',...
'Position',[0.1 0.05 0.3 0.1],...
'String','One!',...
'Callback',@(~,~)ToggleLines(hL,1));
uicontrol('Style','pushbutton',...
'Units','normalized',...
'Position',[0.4 0.05 0.3 0.1],...
'String','Two!',...
'Callback',@(~,~)ToggleLines(hL,2));
end
function ToggleLines(hL,idx)
set(hL(setdiff(1:numel(hL),idx)),'visible','off'); %turn other lines off
set(hL(idx),'visible','on'); %turn line of choice on
legend(hL(idx),sprintf('Line %i',idx)); %add legend
end
Save the above to showTwoLines.m
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!