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

Legende Reihenfolge ändern

 

tschurl
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2011, 14:09     Titel: Legende Reihenfolge ändern
  Antworten mit Zitat      
Hallo,

ich hab als graphische Ausgabe eine "Area/Flächendiagramm" und eine dazugehörige Legende.

Funktioniert alles prima, nur ist die Legende ja genau umgekehrt angegeben wie das Diagramm.
Also wenn der 1.wert die unterste Fläche ist ist bei der Legende es der oberste Eintrag.

Weiß jemand wie ich die Reichenfolge bei einer Legende ändern kann, so dass die Farben des Flächendiagramms von unten nach oben auch in der Legende gleich sind, also auch von unten nach oben und nicht genau anders herum?
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.10.2011, 14:18     Titel: Re: Legende Reihenfolge ändern
  Antworten mit Zitat      
Hallo tschurl,

Eine Änderung anzugeben fällt leichter, wenn Du Deinen Code postest.

Gruß, Jan
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: 10.10.2011, 14:19     Titel:
  Antworten mit Zitat      
Hallo,

die Frage finde ich etwas schwierig zu verstehen.
Wenn ich es richtig interpretiere, geht es dir nur um die Reihenfolge der Einträge in der Legende, nicht um die Zuordnung. Diese Reihenfolge ist nicht von oben nach unten oder umgekehrt, sondern in der Reihenfolge, in der die Plots erzeugt werden.
Du müsstest also die Plots in der gewünschten Reihenfolge erzeugen.

Wenn das die Frage nicht beantwortet, hilft vielleicht ein Beispiel.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2011, 15:42     Titel:
  Antworten mit Zitat      
Code:
A = [ 1 2 3 4]

for z = 1:1:10
    array(z,:) = A
end

area(array)
legend('A','B','C','D', -1)


ich meine ich will jetzt A nicht oben sondern unten stehen haben (und D oben und nicht unten), aber das diagramm soll sich nicht ändern.

also ich will meine daten nicht vertauschen sondern nur die legende.

danke an alle
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2011, 16:08     Titel:
  Antworten mit Zitat      
Hi,

meinst du so ?


Code:

% area wie bei dir
figure,bla=area(array);
legend(bla(4:-1:1),'D','C','B','A',-1);
 
Verschoben: 10.10.2011, 16:57 Uhr von _Peter_
Von Programmierung nach Grafiken und Plots
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.10.2011, 19:26     Titel: Re: Legende Reihenfolge ändern
  Antworten mit Zitat      
Hallo tschurl,

Man kann die Reihenfolge der an LEGEND übergebenen Handles kontrollieren:
Code:
H = area(rand(4,4));
legend(H, {'a', 'b', 'c', 'd'});
pause(4);
legend(H(end:-1:1), {'d', 'c', 'b', 'a'});

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tschurl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2011, 09:50     Titel:
  Antworten mit Zitat      
danke für die hilfe hat funktioniert.

möchte jetzt ein flächen und liniendiagramm kombinieren
was auch funktioniert, nur die legende funktioniert nur wenn ich die reihenfolge gleich lasse bzw weiß ich nicht wie is das dann initialisieren soll???

danke

Code:
A = [ 1 2 3 4]

for z = 1:1:10
    array(z,:) = A
    curve(z,:) = z
end

h=area(array);
hold all
plot(curve)
legend('A','B','C','D','curve', -1)
% h=area(array);
% hold all
% plot(curve)
% legend(h(4:-1:1),'D','C','B','A','curve',-1);
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.10.2011, 23:40     Titel:
  Antworten mit Zitat      
Hallo tschurl,

Dann schau doch nochmal die von mir gezeigte Lösung an: Zuerst die Handles, dann die Title.

Code:
A = [1 2 3 4]
array = repmat(A, 10, 1);
curve = 1:10;

h1 = area(array);
hold all
h2 = plot(curve)
legend([h1, h2], 'A','B','C','D','curve', -1)

"help legend" hilft auch weiter.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tschurl
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 03.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2011, 12:07     Titel:
  Antworten mit Zitat      
Hallo Jan,

perfekt, genau so hab ich mir es vorgestellt Smile

vieln Dank für deine Hilfe.

P.S.: Hast du auch eine Idee wien man eine Legend auch mehrzeilig darstellen kann?
Ich würde rein aus optischen Gründen die Legende gerne unter dem Diagramm haben und eben die Daten nebeinander.
Wie das geht weiß ich, nur ist meine Legende dann viel zu lang, d.h. ich würde halt gerne, wenn ich z.B 15 daten habe, 3 zeilen und 5 Spalten haben.
Bis jetzt hab ich nur überall gelesen das geht nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.10.2011, 12:34     Titel:
  Antworten mit Zitat      
Hallo tschurl,

Zitat:
... Legend auch mehrzeilig ... Bis jetzt hab ich nur überall gelesen das geht nicht.

Dann hast Du an den falschen Stellen gelesen. Mit Google findet man da ziemlich schnell etwas:
http://www.google.de/search?q=matlab+legend+multicolumn
Z.B.:
http://www.mathworks.com/matlabcent.....change/27389-columnlegend
http://www.mathworks.com/matlabcent.....column-format-for-legends
Eine Suche im Netz ist empfohlen, bevore man in einem Forum fragt.

Gruß, Jan
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.