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

plotyy mit Fehlerbalken

 

Laserman3591

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 12:40     Titel: plotyy mit Fehlerbalken
  Antworten mit Zitat      
Hallo zusammen,

ich habe das Problem, dass ich einen Plot mit 2 y-Achsen erstellen will, wobei alle Datenreihen sowohl mit horizontalen Fehlerbalken als auch mit vertikalen Fehlerbalken versehen sein sollen. Es gibt zwar schon eine Forenlösung für plotyy mit vertikalen Fehlerbalken, allerdings stammt die aus dem Jahr 2008 und funktioniert bei mir nicht (benutze MATLAB R2011a). Für die horizontalen Fehlerbalken benutze ich übrigens die Funktion 'herrorbar'.

Wenn ich die Lösung aus dem Jahr 2008 versuche, kommt die Fehlermeldung, dass ich ein Ungleichgewicht an Klammern hätte - habe ich aber definitiv nicht!

Also nochmal zusammengefasst:
- möchte gern einen Plot mit 2 y-Achsen erstellen (plotyy)
- Datenreihen sollen vertikale Fehlerbalken haben (errorbar)
- Datenreihen sollen horizontale Fehlerbalken haben (herrorbar)

Wäre super wenn ihr mir helfen könntet!


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.02.2012, 14:15     Titel:
  Antworten mit Zitat      
Hallo

Also bitte, den Link posten zu der Lösung, an der du dich orientiert hast. Und vielleicht ein lauffähiges Beispiel erstellen, wo man dein Problem nachvollziehen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Laserman3591

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 14:51     Titel:
  Antworten mit Zitat      
Also hier schon mal der Link:

http://www.gomatlab.de/errorbar-dat.....199,highlight,plotyy.html

Wie gesagt, habe ich das schon ausprobiert, aber es funktioniert nicht.

Ich habe weiter experimeniert und bin jetzt so weit:

Code:

[AX, H1, H2] = plotyy(x, y1, x, y2);
hold(AX(1), 'on');
hold(AX(2), 'on');
[H1] = errorbar(AX(1), x, y1, ey1);
[H2] = errorbar(AX(2), x, y2, ey2);
 


Soweit funktioniert das. Er plottet die Daten und zeichnet die vertikalen Fehlerbalken ein.

Code:

[H1] = herrorbar(AX(1), x, y1, ex);
[H2] = herrorbar(AX(2), x, y2, ex);
 


An dieser Stelle hat er dann ein Problem. Ich vermute ganz stark, dass das an der Funktion 'herrorbar' liegt. Die scheint mit dem 'AX(1)' bzw. 'AX(2)' nichts anfangen zu können. Wahrscheinlich fasst er das als Inputargument auf, was dann zum Fehler führt.

Hoffe das hilft weiter.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.02.2012, 14:57     Titel:
  Antworten mit Zitat      
hmm den befehl herrorbar kann ich weder bei meiner doc noch auf der matlab seite finden.... wo ist der den dokumentiert?
Private Nachricht senden Benutzer-Profile anzeigen
 
Laserman3591

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 15:12     Titel:
  Antworten mit Zitat      
Den habe ich mir von hier geholt:

http://www.mathworks.com/matlabcent.....leexchange/3963-herrorbar

Der hat bisher auch bestens funktioniert.
 
Laserman3591

Gast


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

ich habe jetzt die Lösung gefunden! Ich hatte die Lösung von 2008 falsch verstanden (war aber auch eine schlechte Wahl der Variablennamen).

Also bei mir funktioniert es jetzt so:

Code:

eb1h=@(x,y) herrorbar(X, Y1, EX);
eb1v=@(x,y) errorbar(X, Y1, EY1);
eb2h=@(x,y) herrorbar(X, Y2, EX);
eb2v=@(x,y) errorbar(X, Y2, EY2);

[AX, H1, H2] = plotyy(X, Y1, X, Y2);
hold(AX(1), 'on');
hold(AX(2), 'on');

plotyy(X, Y1, X, Y2, eb1v, eb2v);
plotyy(X, Y1, X, Y2, eb1h, eb2h);
 


Ist vielleicht nicht die eleganteste Lösung, aber für den Moment funktionert es. Zu beachten ist halt, dass ich "klein x" und "klein y" tatsächlich so geschrieben habe, wohingegen "groß X", "groß Y1" und "groß Y2" meine Datensätze sind.

Vielleicht findest du ja noch eine andere oder elegantere Lösung. Auf jeden Fall trotzdem Danke für den Support!

PS: Mir ist natürlich klar, dass eb1h und eb2h identisch sind. Ich wollte es nur der Vollständigkeit halber mit hinschreiben, falls das mal jemand braucht, bei dem es nicht so ist.
 
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.