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" bei dynamischen Handles

 

Verena
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 16.07.2012, 09:21     Titel: "Legend" bei dynamischen Handles
  Antworten mit Zitat      
Hallo!

Ich hab Probleme eine Legende zu auszugeben, wenn ich innerhalb einer Schleife plotte.

Code:

figure(2)
hFig=figure(2);
set(hFig,'PaperPositionMode','Auto','Position',[0 0 1080 700]);
hold on;
[ax,h1,h2] = plotyy(rawdata(:,1),rawdata(:,auswahl(1)),rawdata(:,1),rawdata(:,auswahl(max)));
for i = 2:(max-2)
    l1=line('parent',ax(1),'xdata',rawdata(:,1),'ydata',rawdata(:,auswahl(i)));
end
l3=line('parent',ax(2),'xdata',rawdata(:,1),'ydata',rawdata(:,auswahl(max-1)));
hold off;

legend([h1 h2 l1 l3],'Daten 1','Daten 2','Daten 3','Daten 4');
 


Der ‚legend’ Command funktioniert natürlich nicht, denn ‚l1’ wird ja bei jedem Schleifendurchgang überschrieben.
Die Anzahl der Schleifendurchgänge ist auch nicht fix. Selbst wenn ich bei jedem Durchgang dynamisch eine Variable erstellen könnte, hab ich anschließend wieder Probleme alles auszugeben.

Hat jemand eine Idee, wie ich das lösen könnte?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2012, 09:24     Titel:
  Antworten mit Zitat      
Hallo,

du könntest mit l1(i) arbeiten und so die Handles in einen Vektor schreiben.

Welche Linien genau sollen beschriftet werden? Jede einzelne der in der Schleife geplotteten Linien? Wenn ja, wie sollen sie beschriftet werden? (sind ja dann mehr als vier).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 16.07.2012, 11:13     Titel:
  Antworten mit Zitat      
Ja, es sollten alle Linien beschriftet werden.

Wie gesagt...auch wenn ich mit l1(i) arbeite muss ich dann den 'legend' Command erst einmal richtig erzeugen.

So vielleicht irgendwie:
Code:

legend([h1 h2 l1(i) l3],'Daten 1','Daten 2',hier_ein_string_array,'Daten 4');
 


Ich weiß halt nur nicht, wie es genau zu realisieren wäre.
Kann mir jemand einen Vorschlag schreiben, wie es funktionieren könnte?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2012, 11:24     Titel:
  Antworten mit Zitat      
Hallo,

Vorschlag:
In der Schleife:
Code:
l1(i-1) =line('parent',ax(1),'xdata',rawdata(:,1),'ydata',rawdata(:,auswahl(i)));


Legende:
Code:
str = [{'Daten 1','Daten 2', 'Daten 4'} <weiteres Cell Array> ];
legend([h1 h2 l3 l1], str);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 16.07.2012, 11:28     Titel:
  Antworten mit Zitat      
Danke Harald Very Happy

Werde ich gleich mal ausprobieren...
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 16.07.2012, 14:29     Titel:
  Antworten mit Zitat      
Also das mit der Legende funktioniert wunderbar Smile

Natürlich hat sich nun ein neues Problem ergeben:
http://postimage.org/image/vcxepwpdb/full/

Immer, wenn ich die Legende außerhalb vom Plot plazieren will, dann wird mir das Layout zerstört (das rechte Bild, wenn man dem Link folgt).

Irgendwelche Ideen oder ist das ein BUG?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2012, 16:04     Titel:
  Antworten mit Zitat      
Hallo,

sieht nicht toll aus. Hilfreich wäre ein reproduzierbares Minimalbeispiel.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 16.07.2012, 17:12     Titel:
  Antworten mit Zitat      
Hab nun ein Minimalbeispiel gemacht, aber natürlich tritt das Problem hier nicht auf Sad

Trotzdem hier der Code:
Code:

function test

test=[0:1:10;0:2:20;0:4:40;0:8:80;0:10:100]';
figure(1)
hFig=figure(1);
set(hFig,'PaperPositionMode','Auto','Position',[0 0 1080 700]);
hold on;
[ax,h1,h2] = plotyy(test(:,1),test(:,1),test(:,1),test(:,5));
set(h1,'LineWidth',1.5,'Color',[0,0,0])
set(h2,'LineWidth',1.5,'Color',[0/255,100/255,0/255])
var=255;
for i = 2:(5-2)
    l1(i-1)=line('parent',ax(1),'xdata',test(:,1),'ydata',test(:,i));
    set(l1(i-1),'LineWidth',1.5,'Color',[var/255,0/255,0/255]);
    var=var-100;
end
l3=line('parent',ax(2),'xdata',test(:,1),'ydata',test(:,4));
set(l3,'LineWidth',1.5,'Color',[100/255,0/255,140/255]);
str=[{'Linie 1','Linie 2','Linie 3','Linie 4'}];
leg2=legend([h1 h2 l3 l1],str);
set(leg2, 'FontSize',8,'Location','NorthEastOutside');
hold off;
 


Es muss irgendwie an der Fenstergröße vom Plot liegen.
Im rechten Plot (noch mal zur Erinnerung hier der Plot http://postimage.org/image/vcxepwpdb/full/) ist die 'Location' auf den Wert 'NorthEastOutside' definiert.

Nun hab ich gerade herausgefunden, dass wenn ich die Legende nachträglich händisch weiter nach rechts (also Richtung EAST) verschiebe das Problem behoben wird.
Siehe hier:
http://postimage.org/image/k8kwb9tgv/
Also zu mind. wird das Layout wieder richtig gestellt.

Keine Ahnung, was nun das Problem ist.
Echt frustrierend. Nur die blöde Legende lässt sich nicht platzieren Sad
...werfe (für heute) das Handtuch
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.07.2012, 19:48     Titel:
  Antworten mit Zitat      
Hallo,

dein geposteter Code macht bei mir (verständlicherweise) das, was er soll. Ich habe auch die Daten ein wenig verändert, und konnte das Problem nicht reproduzieren. Bitte möglichst Daten bereitstellen, mit denen das Problem nachvollzogen werden kann.
Bitte auch angeben, mit welchem Release du arbeitest.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 17.07.2012, 08:59     Titel:
  Antworten mit Zitat      
Mein MatLab Version:
7.0.4.365 (R14) Service Pack 2
Student Version

Kann ich Dir vielleicht eine persönliche Nachricht schicken, damit wir Mailadressen austauschen? Ich will die Daten nicht gerne einfach so veröffentlichen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2012, 18:39     Titel:
  Antworten mit Zitat      
Hallo,

es müssen ja nicht die ganzen Daten sein; oft reichen die ersten 5 und die letzten 5 Zeilen. Oder die 10 "extremsten" Zeilen (was auch immer das heißt).

Wenn es so nicht klappt, können wir das auch über PN machen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 20.07.2012, 10:15     Titel:
  Antworten mit Zitat      
Das Problem mit dem Layout liegt bei meiner MatLab Version Sad

Danke noch mal an Harald!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2012, 10:42     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das Problem mit dem Layout liegt bei meiner MatLab Version Sad

Das kann auch an speziellen Einstellungen auf deinem Rechner liegen. Die erste Frage wäre mal: mit welcher Version arbeitest du?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Verena
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 10.07.12
Wohnort: Wien
Version: 7.0.4.365 (R14) Service Pack 2
     Beitrag Verfasst am: 20.07.2012, 11:19     Titel:
  Antworten mit Zitat      
Hab ich oben geschrieben:
7.0.4.365 (R14) Service Pack 2
Student Version

Oder versteh ich da was falsch???
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2012, 11:47     Titel:
  Antworten mit Zitat      
Hallo,

sorry, ich schreibe sehr viele Beiträge hier und gehe nicht jedes Mal alles von oben bis unten durch. Am einfachsten ist es, wenn man die Versions-Information in das Profil packt; so ist es schnell zu erkennen.

R14 ist eine recht alte Version. Es ist durchaus möglich, dass ein Problem mit dieser Version aus einem inzwischen längst behobenen Bug herrührt.

Grüße,
Harald
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.