Prenons l'exemple suivant:Terrain Matlab - entrée Légende pour plusieurs lignes de données - getColumn
x = magic(3);
figure(1); clf(1);
plot(x, '-r', 'DisplayName', 'Magic');
legend('show');
Les entrées de légende résultant en Matlab R2014a sont
getColumn (magie, 1)
getColumn (Magie, 2)
getcolumn (Magic, 3)
Le problème vient de function [leg,labelhandles,outH,outM] = legend(varargin)
dans legend.m
(Droit d'auteur 1984-2012 The MathWorks, Inc.), ligne 628:
str{k} = get(ch(k),'DisplayName');
Plus précisément, la fonction get
- précèder
getcolumn(
et - ajouter ses
, <Column Number>)
.
est-il un moyen facile d'afficher exactement une entrée de légende (ou multiple, mais sans les chaînes rajoutés) pour plusieurs lignes de données portant le nom DisplayName
, qui ont les mêmes propriétés visuelles?
Une alternative serait bien sûr de créer plusieurs entrées de légende (ou une seule) par le biais de poignées de tracé (voir ci-dessous), mais je voudrais que les choses restent courtes et simples.
Une entrée:
x = magic(3);
figure(1); clf(1);
h = plot(x, '-r');
legend(h(1), 'Magic');
entrées multiples:
x = magic(3);
figure(1); clf(1);
h = plot(x, '-r');
strL = cell(1, numel(h));
for k = 1:numel(h)
strL{k} = sprintf('Magic %d', k);
end
legend(h, strL);
dans Matlab R2014b, le problème avec getColumn (Nom, Row) ne semble pas plus pour la première exemple de code.