Legend of graph doesn't match plot color and style
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kevin Navarro
le 20 Jan 2019
Commenté : Star Strider
le 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')
0 commentaires
Réponse acceptée
Star Strider
le 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Legend dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!