Solve Matlab Legend Problem for Plotting Four Pairs of Time Series

  • Context: MATLAB 
  • Thread starter Thread starter Old Guy
  • Start date Start date
  • Tags Tags
    Matlab
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 4K views
Old Guy
Messages
101
Reaction score
1
I am trying to make a plot of four pairs of time series. The plot appears fine; I have two lines in each color as I want. The problem, in this case, is that the first two legend items both have red lines, and the second two both have black lines. I want each legend entry to match the color of the pair of lines on the plot. My code is below; I hope someone can help. Some comments on the code:

z is the counter - I have a loop that calculates the data and puts in into plotdata for each run. The four correspond to four values of p.

hold on
figure(1)
colors=['r' 'k' 'g' 'b'];
semilogy(plotdata(:,1),plotdata(:,2:3),colors(z))
xlabel('Time, {\itt}','FontSize',24,'FontName','Times New Roman')
ylabel('Fractional Population','FontSize',24,'FontName','Times New Roman')
set(gca,'FontSize',24,'FontName','Times New Roman')
grid on
legend(char({strcat('{\itp} =',num2str(p(1:z)'))}))

Thanks!
 
Physics news on Phys.org
If you had attached the plot, it would have been better. The code provided is not sufficient to generate the plot either.

What I understood is, you have same colour for two different lines, and then you can't make it out from the legend which one is which. Just change the line styles. Plot one with plot(...,'k'), another with plot(...,'--k'), and yet another with plot(...,'-ok'). You can put the same into the colors matrix and suitably modify your code as needed.

Check this documentation too:
https://in.mathworks.com/help/matlab/ref/linespec.html