legend in 2d line plot

1 visualización (últimos 30 días)
Richard
Richard el 8 de Mzo. de 2012
I'm plotting data in a for loop where I'm looping through two datasets so using plot...; hold on;plot...
I only want the legend for the first plot, but there doesn't seem to be a way of doing this. Any advice?
Failing this, is there a way of adding a graph onto a currently existing graph. So, that I could just plot the first with a legend and then plot the second on top of this without a legend?
The code I've written is shown below:
for i = 1:length(LakeName);
for ii = 1:length(CorrVariables)
fh{ii} = figure(ii);
plot(HiResDay,HiRes.(LakeName{i}).(CorrVariables{ii}),'linewidth',2,'color',cmap(i,:));hold on;
plot(LowResDay,LowRes.(LakeName{i}).(CorrVariables{ii}),'--k','linewidth',3);
hTitle = title ([CorrVariables{ii} ' 2011']);
hXLabel = xlabel('Time (Day of year)' );
hLegend = legend(LakeName{:});
end
end
This doesn't work as I expected; the legend shows the line for the first plot and then the second, then back to the first, so in the end I have the first legend entry in the designated color, then the second legend entry shown according to '--k'.

Respuesta aceptada

the cyclist
the cyclist el 8 de Mzo. de 2012
Here is a simple example of using the handles of only the first plots when making the legend.
h1 = zeros(5,1);
h2 = zeros(5,1);
lineColor = rand(10,3);
figure
hold on
for i =1:5;
h1(i) = plot(rand(4,1),rand(4,1),'Color',lineColor(i,:)); % Plot some random data in a random color
h2(i) = plot(rand(4,1),2+rand(4,1),'Color',lineColor(5+i,:));
end
legendText = {'1','2','3','4','5'};
legend(h1,legendText); % Make legend using handles to only first plots
  3 comentarios
the cyclist
the cyclist el 8 de Mzo. de 2012
I was hoping you would see how this would generalize. The essence is that you need to create a vector of the handles to the ONLY the elements you want in the legend. Then use that vector of handles when you call the legend command.
That is what I did in my example. I built my vector of handles from only the first plot, and used that vector in the legend command.
Richard
Richard el 9 de Mzo. de 2012
finally got it, I needed to create a cell array for the handles of each figure. cheers.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by