Multiple legends with a variable in a figure legend
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raj Raj
am 3 Okt. 2014
Kommentiert: Raj Raj
am 5 Okt. 2014
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...
0 Kommentare
Akzeptierte Antwort
Geoff Hayes
am 3 Okt. 2014
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');
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!