Skip legend with empty line

조회 수: 18 (최근 30일)
Zheng Liu
Zheng Liu 2018년 1월 10일
댓글: Star Strider 2018년 11월 20일
Hi folks,
I found specifying Matlab legend confusing when I have a line that could be empty (then has an empty handle). I want to skip the legend for empty line. For example:
h1 = plot([]); % Blue line
hold on;
h2 = plot(rand(1,10),'r'); % Red line
h3 = plot(rand(1,10),'g'); % Green line
legend([h1 h2 h3],{'want to withdraw this if line unexist', 'hello', 'world'});
In this case, the legend for h1 will be assigned on h2, and the legend for h3 will be ignored.
Do you have any better solution rather than doing (since I might have different lines empty or not, and I just want the matched legends):
h1 = plot([]); % Blue line
hold on;
h2 = plot(rand(1,10),'r'); % Red line
h3 = plot(rand(1,10),'g'); % Green line
if ~isempty(h1)
legend([h1 h2 h3],{'want to skip this if line unexist', 'hello', 'world'})
else
legend([h2 h3],{'hello', 'world'})
end
Thanks!

채택된 답변

Star Strider
Star Strider 2018년 1월 10일
Try this:
h1 = plot([], 'DisplayName','want to withdraw this if line unexist'); % Blue line
hold on;
h2 = plot(rand(1,10),'r', 'DisplayName','hello'); % Red line
h3 = plot(rand(1,10),'g', 'DisplayName','world'); % Green line
legend('show')
  댓글 수: 4
J D
J D 2018년 11월 20일
I had a similar problem, this is perfect! Thanks.
Star Strider
Star Strider 2018년 11월 20일
My pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Legend에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by