Dynamic Legends plot option (error: two legend lines for each plot)

26 views (last 30 days)
I have a function which makes a plot from different vectors, then each time that I add a new plot I need to add a new legend which is a variable(legend) now I trying to do it with the next code:
plot_test = plot(vector1, vector2, '-mo','Color',color, 'DisplayName',legend);
hold all;
but as result I got two new legends for each plot, one whith the real name and another called line2, line4, line6....and so on depending the number of plots...
Any help please?

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 3 Sep 2013
Edited: Azzi Abdelmalek on 3 Sep 2013
Look at this example
hold all
leg=[get(hl,'string'), 'leg2']
Manuel on 4 Sep 2013
This is the function now:
function [plot_test, hl, old_hl] = plot_vector(Test, cond1, cond2, cond3, color, test1, hl, old_hl)
plot_test = plot(cell2mat(plot_array.vector1),cell2mat( plot_array.vector2),'-mo','Color',color);
old_hl=legend(strcat(cond1,'°C ',cond2,'mV ',cond3,'Overshoot'));
leg=[old_hl(hl,'string'), strcat(cond1,'C ',cond2,'mV ',cond3,'Overshoot')];
hold all
I have the same behavior, I don't understund from where is coming old_hl, there is no variable call like that...
I really appreciatte your help Azzi, Thanks again!

Sign in to comment.

More Answers (1)

Robert Cumming
Robert Cumming on 3 Sep 2013
Is this the type of feature your after:
x = [0:0.01:2*pi];
hold on;
plot ( x, sin (x), 'DisplayName', 'Plot A' )
legend ( '-dynamicLegend' )
plot ( x,- sin (x), 'r', 'DisplayName', 'Plot B' )
plot ( x, 2*sin (x), 'g', 'DisplayName', 'Plot C' )
  1 Comment
Manuel on 3 Sep 2013
I dont understund what you mean. I was using this option but it creates two legend fields(one as'Plot A' and one as 'line2') for each plot.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by