%% ich lasse die Daten zwei mal Plotten um die Marker Größe seperat von der LineWidth einzustellen
legend_strings{i}=['Ref.level: ',num2str(i)]; % erzeugt die Legend dynamisch
l=legend(p,'location','south',legend_strings); % sollte den Plot p Labeln set(l,'FontSize',12)
title('Chlorella MassFraction, Fall A, Line1','FontSize',16,'FontWeight','bold') xlabel('Z-Koordinate [m]','FontSize',16,'FontWeight','bold') ylabel('MassFractionChlorella','FontSize',16,'FontWeight','bold') box on
xlim([-0.0030.003]) set(gca,'FontSize',16,'FontWeight','bold','XGrid','off','YGrid','on')
figure(2) %% dieser Fall Funktioniert
%Chlorella MassFraction Fall A, Line2 hold on
plot(data(:,3),data(:,4),'LineWidth',1.5,'color',color(i,:)) title('Chlorella MassFraction, Fall A, Line2','FontSize',16,'FontWeight','bold') xlabel('Z-Koordinate [m]','FontSize',16,'FontWeight','bold') ylabel('MassFractionChlorella','FontSize',16,'FontWeight','bold') box on
xlim([-0.0030.003]) set(gca,'FontSize',16,'FontWeight','bold','XGrid','off','YGrid','on')
legend_strings{i}=['Ref.level: ',num2str(i)];
l=legend('location','south',legend_strings);
set(l,'FontSize',12)
Ich hoffe das Minimalbeispiel ist ausreichend. Ich möchte, dass nur die Symbole gelabelt werden. Das komische ist, wenn ich das 'p=' vor dem Plot-Befehl entferne, Funktioniert das Ganze. Allerdings unterscheidet er dann nicht mehr zwischen dem Lineplot und dem Symbolplot und schreibt mir murks in die Legende. Wenn ich beides in ein Plotbefehl mache geht es aber dann kann ich wie oben beschrieben die LineWidth der Marker nicht mehr seperat von der LineWidth der Linien einstellen (oder doch irgendwie?) Ich habe schon viele Varianten ausprobiert, aber irgendwie Funktioniert nichts so richtig. Das Anlegen der Label-Strings funktioniert, allerdings nimmt Matlab immer nur den letzten Eintrag in die Legende. Ich vermute es liegt einfach daran, dass er den Eintrag mit jedem Schleifendurchgang überschreibt. Wie kann ich das verhindern? Danke schon mal für Hinweise
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
danke für deine Antwort! Ich hatte deine Lösung vorher schon einmal probiert. Leider spuckt mir Matlab dann folgenden Fehler aus:
Error using legend>process_inputs (line 582)
Invalid argument. Type 'help legend' for more information.
Error in legend>make_legend (line 340)
[autoupdate,orient,location,position,children,listen,strings,propargs] = process_inputs(ha,argin); %#ok
Error in legend (line 294)
make_legend(ha,args(arg:end),version);
Error in GridStudy6_CaseA (line 36)
l1=legend(p,legend_strings,'Location','South');
komischerweise funktioniert das Ganze für die ersten beiden Einträge. Danach macht er wieder murks (vgl. angehängter Screenshot). Aus irgendeinem Grund kommt er nur bis zum dritten Eintrag. Laut Workspace ist 'legend_strings' eine 1x3 cell und 'p' eine 1x3 Graphics.
Nachtrag: Wenn ich den legend-Befehl auskommentiere, dann läuft der Code Fehlerfrei durch. Allerdings ist p dann immer noch 1x3. Da fehlt mir irgendwie das Verständnis. Müsste p nicht 1x5 sein wenn i=1:5???
poste doch bitte den aktuellen Code, am besten ein lauffähiges Beispiel.
Beim originalen Code stimmte ja schon die Reihenfolge der Argumente für legend nicht. Jetzt erstellst du p anders, die entscheidende Frage ist: wie.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
title('Chlorella MassFraction, Fall A, Line1','FontSize',16,'FontWeight','bold') xlabel('Z-Koordinate [m]','FontSize',16,'FontWeight','bold') ylabel('MassFractionChlorella','FontSize',16,'FontWeight','bold') box on
xlim([-0.0030.003]) set(gca,'FontSize',16,'FontWeight','bold','XGrid','off','YGrid','on')
figure(2)
%Chlorella MassFraction Fall A, Line2 hold on
plot(data(:,3),data(:,4),'LineWidth',1.5,'color',color(i,:)) title('Chlorella MassFraction, Fall A, Line2','FontSize',16,'FontWeight','bold') xlabel('Z-Koordinate [m]','FontSize',16,'FontWeight','bold') ylabel('MassFractionChlorella','FontSize',16,'FontWeight','bold') box on
xlim([-0.0030.003]) set(gca,'FontSize',16,'FontWeight','bold','XGrid','off','YGrid','on')
legend_strings{i}=['Ref.level: ',num2str(i)];
l=legend('location','south',legend_strings);
set(l,'FontSize',12)
'data' ist eine 99x7 Matrix, die sich mit jedem Schleifendurchlauf ändert, da sie aus verschiedenen .csv Datein eingelesen wird. Das ist jetzt der Code, der den Plot (figure(1) von dem Screenshot produziert, den ich an mein letzten Post angehängt habe.
Danke für deine Hilfe Harald. Ich habe mein Problem gelöst. Ich hatte weiter unten den Variablennamen p doppelt vergeben. Bitte keine Ohrfeigen, das mache ich schon selber! Einen sonnigen Samstag!
Das mit dem Lauffähigen Code ist schwierig, da ich hier keine .csv dateien hochladen kann
Im Zweifelsfall zippen, dann geht's. Alternativ tun's auch Zufallszahlen. Ebenfalls einen schönen Tag ;)
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.