La légende de plusieurs lignes dans Matlab parcelle
J'ai 13 lignes sur une parcelle, chaque ligne correspondant à un ensemble de données à partir d'un fichier texte. J'aimerais étiquette de chaque ligne de départ avec le premier ensemble de données 1.2, puis par la suite de 1,25, 1.30, à 1,80, etc., à chaque incrément de 0,05. Si j'étais à taper manuellement, il serait
legend('1.20','1.25','1.30', ...., '1.80')
Toutefois, à l'avenir, je pourrais avoir plus de 20 lignes sur le graphique. Donc en tapant chacun est irréaliste. J'ai essayé de créer une boucle dans la légende et il ne fonctionne pas.
Comment puis-je faire cela en pratique?
N_FILES=13 ;
N_FRAMES=2999 ;
a=1.20 ;b=0.05 ;
phi_matrix = zeros(N_FILES,N_FRAMES) ;
for i=1:N_FILES
eta=a + (i-1)*b ;
fname=sprintf('phi_per_timestep_eta=%3.2f.txt', eta) ;
phi_matrix(i,:)=load(fname);
end
figure(1);
x=linspace(1,N_FRAMES,N_FRAMES) ;
plot(x,phi_matrix) ;
Besoin d'aide ici:
legend(a+0*b,a+1*b,a+2*b, ...., a+N_FILES*b)
Pourquoi ne pas simplement faire
Ce serait mieux, mais ils auraient à transposer
x=1:N_FRAMES;
? Plus clair je pense. En fait, vous n'avez pas besoin de x à tous, plot(phi_matrix);
devrait fonctionner.Ce serait mieux, mais ils auraient à transposer
phi_matrix
afin qu'il les parcelles de chaque colonne d'une ligne.OriginalL'auteur Flora | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
Comme une alternative à la construction de la légende, vous pouvez également définir la
DisplayName
propriété d'une ligne de sorte que la légende est de corriger automatiquement.Ainsi, vous pouvez effectuer les opérations suivantes:
OriginalL'auteur Jonas
Utiliser "DisplayName" comme un plot() de la propriété, et appelez votre légende comme
Mon code ressemble à ceci:
source: http://undocumentedmatlab.com/blog/legend-semi-documented-feature/
OriginalL'auteur willzone1
legend
pouvez également prendre une cellule de la liste de chaînes de caractères comme argument. Essayez ceci:OriginalL'auteur nibot
L'approche la plus simple serait probablement de créer un vecteur colonne des numéros à utiliser pour vos étiquettes, de les convertir en forme un tableau de caractères avec
N_FILES
lignes à l'aide de la fonction NUM2STR, puis passer cela comme un argument unique de LÉGENDE:OriginalL'auteur gnovice
J'ai trouvé cette j'ai trouvé grâce à Google:
Donc, fondamentalement, il semble que vous pouvez construire une matrice en quelque sorte pour ce faire.
Un exemple:
OriginalL'auteur Jason