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 plotyy

 

hboeth
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 05.07.2010, 10:11     Titel: legend plotyy
  Antworten mit Zitat      
Hallo,
wenn ich in einem plotyy 4 Grafiken mit 'hold on' darstellen möchte, gibt mir Matlab für die Legende immer einen Fehler.

Und zwar diesen:
Warning: Ignoring extra legend entries.
In legend at 280

Kann mir jemand helfen?

Mein Code:
Code:

t=-10:0.01:10;
x1=sin(t);
x2=tan(t);
x3=cos(t);
x4=atan(t);

plotyy(t,x1,t,x2);hold on;
plotyy(t,x3,t,x4);

legend('links1','rechts1','links2','rechts2');

 


Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 05.07.2010, 10:20     Titel:
  Antworten mit Zitat      
Einfach ein

Code:


nutzen.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 05.07.2010, 11:05     Titel:
  Antworten mit Zitat      
mmh, auch wenn ich hold all verwende, gibt er mir die legende falsch an...
Habt ihr eine andere Idee oder mache ich etwas falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 05.07.2010, 11:29     Titel:
  Antworten mit Zitat      
Hallo,

wärst du mir dieser Lösung zufrieden?
Code:

t=-10:0.01:10;
x1=sin(t);
x2=tan(t);
x3=cos(t);
x4=atan(t);

y1=[x1;x3];
y2=[x2;x4];

plotyy(t,y1,t,y2)

legend('links1','links2','rechts1','rechts2');

gruss
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 05.07.2010, 13:20     Titel:
  Antworten mit Zitat      
Ja, das klappt so! jetzt brauche ich aber noch für alle 4 Grafen unterschiedliche Farben und LineStyles.

Kannst du mir verraten wie das jetzt funktioniert?
Das wäre super!!!
Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 05.07.2010, 13:39     Titel:
  Antworten mit Zitat      
Hallo,

mit mit den handles h1(1),h1(2),h2(1),h2(2) kannst du die einezlnen Graphen manipulieren.
Code:

t=-10:0.01:10;
x1=sin(t);
x2=tan(t);
x3=cos(t);
x4=atan(t);

y1=[x1;x3];
y2=[x2;x4];

[ax,h1,h2]=plotyy(t,y1,t,y2);
set(h1(1),'Color','y')
set(h1(2),'LineStyle','*')
set(h2(1),'LineStyle',':')
set(h2(2),'Color','k')

legend('links1','links2','rechts1','rechts2');
 


gruss
Private Nachricht senden Benutzer-Profile anzeigen
 
hboeth
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 01.07.10
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 05.07.2010, 13:58     Titel:
  Antworten mit Zitat      
OK, super, das klappt jetzt alles. nur noch eine sache. Und zwar möchte ich die Dicke der Linie bei h1 verändern.
Das sollte ja mit 'LineWidth' funktionieren. Tut es aber komischerweise nicht...

Code:

set(H1,'LineWidth','0.7');
 


Fehler lautet: 'Error using set. Value must be numeric'
Sagt dir das was??
Private Nachricht senden Benutzer-Profile anzeigen
 
Fourier
Forum-Guru

Forum-Guru


Beiträge: 329
Anmeldedatum: 05.04.10
Wohnort: Karlsruhe
Version: 2009b
     Beitrag Verfasst am: 05.07.2010, 14:03     Titel:
  Antworten mit Zitat      
Hallo,

Fehler sagt : value musst be a numeric, und
Code:

ist nicht numeric sondern string.

also:
Code:

set(H1,'LineWidth',0.7);
 


bzw. in deinem beispiel:
Code:

set(h1(1),'Linewidth',0.7)


gruss
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2010, 17:48     Titel:
  Antworten mit Zitat      
Hallo zusammen,

bei mir fkt. die Legendebezeichnung auch nicht. Da ich R2006b verwende frage ich mich grad, ob es evrtl. an der Version liegt.

Meine Screenshot im Anhamg... Bei anderen Plots (bar, etc.) sieht es nicht anderes aus.

Nur mit bar wird die y- Achse nachwievor nicht suaerb angezeigt, Screenshot ebenfalls im Anhang.

Grüße

Fehler Legende.gif
 Beschreibung:

Download
 Dateiname:  Fehler Legende.gif
 Dateigröße:  36.87 KB
 Heruntergeladen:  916 mal
Screenshot, Legende.gif
 Beschreibung:

Download
 Dateiname:  Screenshot, Legende.gif
 Dateigröße:  37.12 KB
 Heruntergeladen:  915 mal
 
Ouedzem

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2010, 07:41     Titel: a
  Antworten mit Zitat      
Hallo,

hast du eventuell ein beispiel wo es nicht funktioniert?

gruss
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2010, 09:06     Titel:
  Antworten mit Zitat      
Hallo Ouedzem,

das bsp von Fourier fkt. nicht. Die Warnung:
Code:
Warning: Ignoring extra legend entries.
> In legend at 292


wird angezeigt. rufte ich diese auf wird:
Code:

if ~isempty(msg)
  if isstruct(msg)
    warning(msg.identifier,msg.message);
  else
    warning(msg); %#ok
  end
end
 


gezeigt. Aber warum akzeptiert er das struct nicht?

Grüße
 
Shanti
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.08.09
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 07.02.2012, 17:41     Titel:
  Antworten mit Zitat      
Fourier hat Folgendes geschrieben:
Hallo,

wärst du mir dieser Lösung zufrieden?
Code:

t=-10:0.01:10;
x1=sin(t);
x2=tan(t);
x3=cos(t);
x4=atan(t);

y1=[x1;x3];
y2=[x2;x4];

plotyy(t,y1,t,y2)

legend('links1','links2','rechts1','rechts2');

gruss


Also bei mir hat das so wie oben beschrieben nicht geklappt! Problem war, das durch

Code:

y1=[x1;x3];
y2=[x2;x4];
 


für y1 und y2 nur ein Vektor angelegt wurde mit einer Spalte. Ich benutze Matlab R2008b und dort muss statt ; eine Leerzeile zwischen den beiden x Werten!

Code:

y1=[x1 x3];
y2=[x2 x4];
 


Danach war alles super!
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.