Verfasst am: 13.07.2012, 11:35
Titel: multiple plots und legend
Hallo in die Runde,
ich habe das Problem, dass die Farben die in der Legende verwendet werden nicht zu den Graphen meiner nicht-stetigen Funktionen passen. Ich habe schon so einiges ausprobiert. Kann mir vielleicht jemand helfen wie ich dieses Problem umgehen kann?
%plot first graph
p1 = loglog(x1_450,y1_450,x2_450,y2_450,x3_450,y3_450,'Color', [0,1,0]);
hold on;
%plot second graph
p2 = loglog(x1_360,y1_360,x2_360,y2_360,x3_360,y3_360,'Color',[1,0,0]);
%show the legend legend('450nm','360nm');
hold off
Ich kann zwar die Textfarbe, oder die Hintergrundfarbe einer Legende manuel setzen aber nicht die Linienfarbe selbst. Oder geht dies irgendwie und ich konnte es nur nicht finden?
du zeichnest mit jedem Plot-Befehl mehrere Linien. Die Legende wird den Plots standardmäßig der Reihe nach zugeordnet. Wenn du das anders möchtest, kannst du die Handles der Linien, denen die Legende zugeordnet werden soll, angeben. Hier z.B. so:
hey hab so ziemlich das selbe problem hab das jetzt so eingegeben wie su das gesagt hast aber er zeigt mir an der stelle immer noch ein Fehler aber ich seh ihn leider nicht könnt ihr mir hefen
insbesondere da der Code so nicht reproduzierbar ist: welche Fehlermeldung wird dir angezeigt?
Auf den ersten Blick würde ich sagen, dass das Problem ist, dass nur p1, p2 oder p3 belegt wird, du aber alle drei zu verwenden versuchst.
servus Harald,
das ist nur der teil des Programms der zum ausgeben gedacht war.
der ganze Quellcode hab ich jetzt mal unten angegeben.
er soll dafür da sein die Falkner-Skan Gleichung zu aproximieren und für verschiedene Druckgradienten Beta y' auf x aufzutragen. wenn ich nun legend ([p1(1),p2(1),p3(1)],'Beta <0','Beta =0','Beta >0'); benutze kommt die Fehlermeldung:
Undefined function or variable "p2".
Error in Experiment (line 64)
legend ([p1(1),p2(1),p3(1)],'Beta <0','Beta =0','Beta >0');
und es wird mir nur ein Graph in grün ausgegeben
ich hab dann einfach mal
legend ([p1(1)],'Beta <0','Beta =0','Beta >0'); eingegeben und da kamm dann alle 7 Graphen raus mit verschiedenen Faben nur die legende war natürlich nur das Beta< 0 drinnen
wahrscheinlich ist es echt nur ne kleinigkeit was da nicht hinhaut aber ich bin auch ein ziemlicher MatLap Neuling
end % function beta % % Bisektionsalgorithmus % if y(2)<1 % gamma_unten=gamma; % else % gamma_oben=gamma; % end % gamma=(gamma_unten+gamma_oben)/2; % end % % % end
% Funktion der rechten Seite function rhs=f(y,beta)
rhs=[y(2),y(3),-y(1)*y(3)-beta*(1-(y(2))^2)];
end
% Schritt des Runge-Kutta-Verfahrens 4. Ordnung function dy=RungeKutta4(y,h,beta)
k_1=f(y,beta);
k_2=f(y+(h/2)*k_1,beta);
k_3=f(y+(h/2)*k_2,beta);
k_4=f(y+h*k_3,beta);
dy=(h/6)*(k_1+2*(k_2+k_3)+k_4);
end
die Erklärung für die Fehlermeldung habe ich dir ja schon gegeben.
Wie du sie sinnvoll vermeiden kannst, musst du aus deiner Anwendung heraus entscheiden.
So kann es sinnvoll sein, die Legende unmittelbar nach plot in der Verzweigung zu erstellen, damit die Legende an den Fall angepasst wird.
perfekt danke ich hab den code jetzt unter p3 geschrieben und dann hat es geklappt. danke dir vielmals . aber ich hab immer noch nicht ganz verstanden dass wenn ich die legende außerhalb der schleife hinschreibe warum er dann p2 nicht erkennt.
LG
Wenn ein Teil des Codes aber aufgrund nicht erfüllter Bedingungen nicht durchlaufen wird, wird die Variable aber nicht angelegt.
Geh den Code doch mal zeilenweise mit dem Debugger durch.
Vorher aber das hier unsinnige "clear all" entfernen (siehe diverse Threads dazu).
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.