필터 지우기
필터 지우기

Multiple legends with a variable in a figure legend

조회 수: 5 (최근 30일)
Raj Raj
Raj Raj 2014년 10월 3일
댓글: Raj Raj 2014년 10월 5일
Hi all,
I am trying to plot a figure with 3 curves. I need legends to the figures with varibales as legends. Here is my try. Please correct it.
figure(),
plot(x1, y1,'o', x2, y2, 'x' , coeffs(1)+x2, coeffs(2)+y2,'+')
legend('x1-y1; i-10:i','x2-y2; i+1:i+11', 'interpolated');
The above figure works fine. But need to add "i" value from the program. Hence I tried methods as follows
plot(x1, y1,'o', 'DisplayName', sprintf('x1-y1; i-10:i; i=%d', i), ...
x2, y2,'x', 'DisplayName', sprintf('x2-y2; i+1:i+11; i=%d', i), ...
coeffs(1)+x2,coeffs(2)+y2,'+','DisplayName',sprintf('Interpolated; i=%d', i));
The error is
Error using plot String argument is an unknown option.
Thanks for your attention...

채택된 답변

Geoff Hayes
Geoff Hayes 2014년 10월 3일
Raj - the code
plot(x1, y1,'o', 'DisplayName', sprintf('x1-y1; i-10:i; i=%d', i), ...
x2, y2,'x', 'DisplayName', sprintf('x2-y2; i+1:i+11; i=%d', i), ...
coeffs(1)+x2,coeffs(2)+y2,'+','DisplayName',sprintf('Interpolated; i=%d', i));
is failing because the inputs to plot do not meet the input specification for this function. From plot, we see that a call with multiple inputs is given by
plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)
The 'DisplayName' doesn't seem to be one of those line spec properties. Note that even the simpler
plot(x1, y1,'o', 'DisplayName', sprintf('x1-y1; i-10:i; i=%d', i), x2, y2,'x')
generates the same error.
Since the original code worked, why not combine it with the sprintf as
legend(sprintf('x1-y1; %d:%d',i-10,i),sprintf('x2-y2; %d:%d',i+1,i+11), 'interpolated');

추가 답변 (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