Filter löschen
Filter löschen

Legend of graph doesn't match plot color and style

2 Ansichten (letzte 30 Tage)
Kevin Navarro
Kevin Navarro am 20 Jan. 2019
Kommentiert: Star Strider am 20 Jan. 2019
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')

Akzeptierte Antwort

Star Strider
Star Strider am 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
  2 Kommentare
Kevin Navarro
Kevin Navarro am 20 Jan. 2019
Worked like a charm, thank you!
Star Strider
Star Strider am 20 Jan. 2019
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by