L’idée est de successivement plotter une ligne puis afficher la légende , plotter une seconde ligne , ré-afficher la légende avec cette nouvelle donnée.
Voilà le code simplifié : on plotte deux lignes auxquelles on ajoute un displayname :
legend('show')
hold on
plot(3:5,'r','displayname','2nd graph')
legend('show')
Ce qu’on remarque c’est que la légende de la ligne rouge ‘2nd graph’ n’apparait pas. Alors évidemment on pourrait appeler legend show une seule fois à la fin du code. Mais nous dans notre cas on voudrait voir la légende se rafraichir.
Il existe deux solutions : une manuelle supportée et une en ligne de commande non semi-documentée.
- La première solution officielle
Il suffit de cliquer droit sur la légende et de choisir dans le context menu « Refresh » :
- La seconde solution semi documentée
C’est d’utiliser la propriété -DynamicLegend
plot(1:10,’b’,’displayname’,’1st graph’)
legend(‘-DynamicLegend’);
legend(‘show’)
hold on
plot(3:5,’r’,’displayname’,’2ng graph’)
legend(‘show’)
Elle est semi documentée dans le sens où il suffit d’afficher le code legend.m pour voir apparaitre cette option:
edit legend
Bref dans les 2 cas on arrive au résultat souhaité: