Legend of graph doesn't match plot color and style

1 view (last 30 days)
Hello,
I have been looking for a way to match my legend color and characters to what is plotted on the graph. For some reason after the first two legend values, the legend ignores the color and icon that has been plotted and just recycles the second red dotted value for the rest of the plots. How would I get the legend to match the plot?
figure(2)
H=4;
t=0;
omega=2*pi/10;
omegat=omega*t;
kx=-2*pi:.1:2*pi;
eta=H/2*cos((kx)+(omegat));
etaH=eta/H;
plot(kx,etaH)
xlabel('Dimentionless Distance kx')
ylabel('Dimentionless Elevation \eta/H')
% t=0
t=0;
omegat0=omega*t;
hold on
plot(kx,omegat0,'r.')
% t=1
hold on
t=1;
omegat1=omega*t;
plot(kx,omegat1,'y.')
% t=2
hold on
t=2;
omegat2=omega*t;
plot(kx,omegat2,'g.')
% t=3
hold on
t=3;
omegat3=omega*t;
plot(kx,omegat3,'m.')
% Legend
legend('\eta/H as a function of kx', '\omegat at t=0','\omegat at t=1','\omegat at t=2','\omegat at t=3')

Accepted Answer

Star Strider
Star Strider on 20 Jan 2019
You can plot an independent variable aganst a dependentent variable constant, however you will end up with the problem you are seeing. Multiplying the constant by a ones vector solves the problem:
hold all
plot(kx,omegat0*ones(size(kx)),'r.')
% t=1
t=1;
omegat1=omega*t;
plot(kx,omegat1*ones(size(kx)),'y.')
% t=2
t=2;
omegat2=omega*t;
plot(kx,omegat2*ones(size(kx)),'g.')
% t=3
t=3;
omegat3=omega*t;
plot(kx,omegat3*ones(size(kx)),'m.')
hold off

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!