Legende für mehrere Zeilen in Matlab plot
Habe ich 13 Zeilen auf einem Grundstück, jede Zeile entspricht einem Satz von Daten aus einer text-Datei. Ich möchte label jede Zeile beginnt mit dem ersten Satz von Daten als 1.2, anschließend 1.25, 1.30, 1.80, etc., mit jedem Inkrement werden 0.05. Wenn ich geben Sie es manuell, es wäre
legend('1.20','1.25','1.30', ...., '1.80')
Jedoch, in der Zukunft, ich kann mit mehr als 20 Linien auf der Grafik. Also die Eingabe, jeder ist unrealistisch. Ich habe versucht, die Schaffung einer Schleife in der Legende, und es funktioniert nicht.
Wie kann ich das in einer praktischen Art und Weise?
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) ;
Brauchen hier Hilfe:
legend(a+0*b,a+1*b,a+2*b, ...., a+N_FILES*b)
Warum gehst du nicht einfach tun
Das wäre besser, aber Sie hätte umsetzen
x=1:N_FRAMES;
? Klarer, denke ich. Eigentlich brauchen Sie nicht x an alle, die plot(phi_matrix);
funktionieren sollte.Das wäre besser, aber Sie hätte umsetzen
phi_matrix
so, dass es Parzellen, jede Spalte als eine Zeile.InformationsquelleAutor Flora | 2011-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als alternative zum Bau der Legende, können Sie auch die
DisplayName
Eigenschaft einer Linie, so dass die Legende wird automatisch korrigieren.So, könnten Sie Folgendes tun:
InformationsquelleAutor Jonas
Verwenden, "DisplayName" wie ein plot () - Eigenschaft, und rufen Sie Ihre eigene Legende wie
Mein code sieht wie folgt aus:
Quelle: http://undocumentedmatlab.com/blog/legend-semi-documented-feature/
InformationsquelleAutor willzone1
legend
können auch eine Zelle Liste von strings als argument. Versuchen Sie dies:InformationsquelleAutor nibot
Die einfachste Methode wäre wahrscheinlich zu erstellen Sie eine Spalte, Vektor der zahlen zu verwenden, wie Sie Ihre Etiketten, konvertieren Sie Sie auf eine formatierte Zeichen-array mit
N_FILES
Zeilen mit der Funktion NUM2STR, dann übergeben Sie dieses als ein einzelnes argument zu LEGENDE:InformationsquelleAutor gnovice
Fand ich diese ich gefunden über Google:
Also im Grunde, wie es aussieht, können Sie konstruieren eine matrix irgendwie dazu.
Beispiel:
InformationsquelleAutor Jason