WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

'legend' als plot-Parameter möglich?

 

Sporisha
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 05.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2014, 13:17     Titel: 'legend' als plot-Parameter möglich?
  Antworten mit Zitat      
Hallo zusammen,

ich habe mal wieder ein kleines Problem bei dem ich nicht weiterkomme. Und zwar untersuche ich mehrere Betriebszyklen auf die Häufigkeit der angefahrenen Betriebspunkte... das klappt soweit ganz gut.
Ich habe allerdings ein Problem bei der Darstellung. In meinem Plot können bis zu 40 Datenreihen angezeigt werden, allerdings sind manche Datenreihen "leer" und werden dementsprechend auch nicht angezeigt,, soweit stimmt noch alles. Wenn ich aber die Legende dazu anschaue, werden nicht die richtigen Legendeneinträge ausgeschlossen (entsprechend der leeren Datenreihen) sondern es wird die Reihenfolge in der legend-Funktion beibehalten, ganz egal ob die dazugehörige Datenreihe gar nicht existiert. Ich hoffe mein Problem ist einigermaßen ersichtlich, der Code und die Bilder sollten den Rest erklären Smile Ich bin btw nicht gerade der eleganteste Programmierer Laughing

Bild1: So soll es aussehen (es gibt keine "leeren" Datenreihen)
Bild2: So nicht (aufgrund "leerer" Datenreihen)


Hier mein Code dazu:
Code:
Diag = plot3(Zstruct.rpm_100(:,2),Zstruct.rpm_100(:,1),Zstruct.rpm_100(:,3),'k',...
             Zstruct.rpm_200(:,2),Zstruct.rpm_200(:,1),Zstruct.rpm_200(:,3),'b',...
             Zstruct.rpm_300(:,2),Zstruct.rpm_300(:,1),Zstruct.rpm_300(:,3),'k',...
             Zstruct.rpm_400(:,2),Zstruct.rpm_400(:,1),Zstruct.rpm_400(:,3),'b',...
             Zstruct.rpm_500(:,2),Zstruct.rpm_500(:,1),Zstruct.rpm_500(:,3),'k',...
             Zstruct.rpm_600(:,2),Zstruct.rpm_600(:,1),Zstruct.rpm_600(:,3),'b',...
             Zstruct.rpm_700(:,2),Zstruct.rpm_700(:,1),Zstruct.rpm_700(:,3),'k',...
             Zstruct.rpm_800(:,2),Zstruct.rpm_800(:,1),Zstruct.rpm_800(:,3),'b',...
             Zstruct.rpm_900(:,2),Zstruct.rpm_900(:,1),Zstruct.rpm_900(:,3),'k',...
             Zstruct.rpm_1000(:,2),Zstruct.rpm_1000(:,1),Zstruct.rpm_1000(:,3),'b',...
             Zstruct.rpm_1100(:,2),Zstruct.rpm_1100(:,1),Zstruct.rpm_1100(:,3),'k',...
             Zstruct.rpm_1200(:,2),Zstruct.rpm_1200(:,1),Zstruct.rpm_1200(:,3),'b',...
             Zstruct.rpm_1300(:,2),Zstruct.rpm_1300(:,1),Zstruct.rpm_1300(:,3),'k',...
             Zstruct.rpm_1400(:,2),Zstruct.rpm_1400(:,1),Zstruct.rpm_1400(:,3),'b',...
             Zstruct.rpm_1500(:,2),Zstruct.rpm_1500(:,1),Zstruct.rpm_1500(:,3),'k',...
             Zstruct.rpm_1600(:,2),Zstruct.rpm_1600(:,1),Zstruct.rpm_1600(:,3),'b',...
             Zstruct.rpm_1700(:,2),Zstruct.rpm_1700(:,1),Zstruct.rpm_1700(:,3),'k',...
             Zstruct.rpm_1800(:,2),Zstruct.rpm_1800(:,1),Zstruct.rpm_1800(:,3),'b',...
             Zstruct.rpm_1900(:,2),Zstruct.rpm_1900(:,1),Zstruct.rpm_1900(:,3),'k',...
             Zstruct.rpm_2000(:,2),Zstruct.rpm_2000(:,1),Zstruct.rpm_2000(:,3),'b',...
             Zstruct.rpm_2100(:,2),Zstruct.rpm_2100(:,1),Zstruct.rpm_2100(:,3),'k',...
             Zstruct.rpm_2200(:,2),Zstruct.rpm_2200(:,1),Zstruct.rpm_2200(:,3),'b',...
             Zstruct.rpm_2300(:,2),Zstruct.rpm_2300(:,1),Zstruct.rpm_2300(:,3),'k',...
             Zstruct.rpm_2400(:,2),Zstruct.rpm_2400(:,1),Zstruct.rpm_2400(:,3),'b',...
             Zstruct.rpm_2500(:,2),Zstruct.rpm_2500(:,1),Zstruct.rpm_2500(:,3),'k',...
             Zstruct.rpm_2600(:,2),Zstruct.rpm_2600(:,1),Zstruct.rpm_2600(:,3),'b',...
             Zstruct.rpm_2700(:,2),Zstruct.rpm_2700(:,1),Zstruct.rpm_2700(:,3),'k',...
             Zstruct.rpm_2800(:,2),Zstruct.rpm_2800(:,1),Zstruct.rpm_2800(:,3),'b',...
             Zstruct.rpm_2900(:,2),Zstruct.rpm_2900(:,1),Zstruct.rpm_2900(:,3),'k',...
             Zstruct.rpm_3000(:,2),Zstruct.rpm_3000(:,1),Zstruct.rpm_3000(:,3),'b',...
             Zstruct.rpm_3100(:,2),Zstruct.rpm_3100(:,1),Zstruct.rpm_3100(:,3),'k',...
             Zstruct.rpm_3200(:,2),Zstruct.rpm_3200(:,1),Zstruct.rpm_3200(:,3),'b',...
             Zstruct.rpm_3300(:,2),Zstruct.rpm_3300(:,1),Zstruct.rpm_3300(:,3),'k',...
             Zstruct.rpm_3400(:,2),Zstruct.rpm_3400(:,1),Zstruct.rpm_3400(:,3),'b',...
             Zstruct.rpm_3500(:,2),Zstruct.rpm_3500(:,1),Zstruct.rpm_3500(:,3),'k',...
             Zstruct.rpm_3600(:,2),Zstruct.rpm_3600(:,1),Zstruct.rpm_3600(:,3),'b',...
             Zstruct.rpm_3700(:,2),Zstruct.rpm_3700(:,1),Zstruct.rpm_3700(:,3),'k',...
             Zstruct.rpm_3800(:,2),Zstruct.rpm_3800(:,1),Zstruct.rpm_3800(:,3),'b',...
             Msum(:,1),Msum(:,3),Msum(:,2),'r',...
             Nsum(:,3),Nsum(:,1),Nsum(:,2),'g','linewidth',2);grid on;
     

warning('off','MATLAB:legend:IgnoringExtraEntries');
   
legend(Diag,'100rpm','200rpm','300rpm','400rpm','500rpm','600rpm','700rpm','800rpm','900rpm','1000rpm','1100rpm','1200rpm','1300rpm','1400rpm',...
            '1500rpm','1600rpm','1700rpm','1800rpm','1900rpm','2000rpm','2100rpm','2200rpm','2300rpm','2400rpm','2500rpm','2600rpm','2700rpm',...
            '2800rpm','2900rpm','3000rpm','3100rpm','3200rpm','3300rpm','3400rpm','3500rpm','3600rpm','3700rpm','3800rpm','h(M)','h(n)','Location', 'EastOutside');

title(sprintf('Betriebspunkte in Abhängigkeit von Drehzahl und Drehmoment\n(...)'))
xlabel(sprintf('Drehmoment M\nin Nm'))
ylabel(sprintf('Drehzahl n\nin rpm'))
zlabel(sprintf('Relative Häufigkeit h\nin Prozent'))

warning('on','MATLAB:legend:IgnoringExtraEntries');



Nun die Frage ob es eine einfache Lösung dafür gibt. Habe mir etwas in der Art erhofft aber das funktioniert natürlich so nicht Rolling Eyes
Code:
Diag = plot3(Zstruct.rpm_100(:,2),Zstruct.rpm_100(:,1),Zstruct.rpm_100(:,3),'k','legend','100rpm',...



Ich hoffe ihr könnt mir weiterhelfen! Smile

Bild2.jpg
 Beschreibung:

Download
 Dateiname:  Bild2.jpg
 Dateigröße:  337.44 KB
 Heruntergeladen:  309 mal
Bild1.jpg
 Beschreibung:

Download
 Dateiname:  Bild1.jpg
 Dateigröße:  408.23 KB
 Heruntergeladen:  293 mal
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 19.09.2014, 15:34     Titel:
  Antworten mit Zitat      
Wow... das ist viel Tipparbeit gewesen. Ich würde das irgendwie so probieren, die Feldnamen des Structs dynamisch ansprechen und die Legende automatisch vollmachen:
Code:
rpm_range = 100:100:3800; % Werte für rpm
colors = {'k','b'}
legend_entries = cell(1,length(rpm_range)+2) % leere Legende

for i = 1:length(rpm_range)
    rpm = rpm_range(i)
    c = mod(i+1,2)+1; % 1 -> 2 -> 1 -> 2 -> 1 -> ... für Farbe
    fieldname = sprintf('rpm_%d',rpm);
    plot3(Zstruct.(fieldname)(:,2), Zstruct.(fieldname)(:,1), Zstruct.(fieldname)(:,3),colors{c})
    hold on
   
    % legende aktualisieren
    legend_entries{i} =  sprintf('%drpm', rpm)
end
plot3(Msum(:,1),Msum(:,3),Msum(:,2),'r',...
      Nsum(:,3),Nsum(:,1),Nsum(:,2),'g','linewidth',2)
grid on;
legend_entries{i+1} = 'h(m)';
legend_entries{i+2} = 'h(n)';
legend(legend_entries, 'location', 'Eastoutside')


Könnte so oder ählnich funktionieren...

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.