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

3 Graphen in einem Plottyy

 

lexis
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2009, 11:47     Titel: 3 Graphen in einem Plottyy
  Antworten mit Zitat      
Hallo,

ich möchte gern 3 Graphen in einem Plot darstellen.

2 Graphen haben die gleiche Skalierung, daher dachte ich könnte man es mit plotyy realisieren, da nur der dritte Graph eine andere Skalierung hat.

Funktioniert aber irgendwie nicht Crying or Very sad

Code:

x=0:1:24;
          [AX,H1,H2] = plotyy(x, s.send,x,s.relative,'plot');
          set(get(AX(1),'Ylabel'),'String','ylabel right')
          set(get(AX(2),'Ylabel'),'String','ylabel right')
         
         
          xlabel('hour')
          title(sprintf('Title %d - %02d - %02d', year,month,day));
         
          set(H1,'LineStyle','--')
          set(H2,'LineStyle','--')
 


Kann jemand helfen?
Liebe Grüße
Lexis
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 05.06.2009, 11:53     Titel:
  Antworten mit Zitat      
Hallo lexis,

Du musst dann die axes angeben, in die der dritte plot kommen soll. Also beispielsweise

Code:
plot(AX(1),x,s.irgendwas)
% oder
plot(AX(2),x,s.irgendwas)


und nicht vergessen:
Code:


Herzliche Grüße
Bijick

PS: "Funktioniert aber irgendwie nicht" ist keine sehr gute Fehlerbeschreibung. Bitte gib beim nächsten Mal an, was passiert und was stattdessen passieren sollte. Smile
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2009, 12:27     Titel:
  Antworten mit Zitat      
super, vielen dank, es läuft Smile

kann ich die farbe noch einstellen?

Code:


             x=0:1:24;
              [AX,H1,H2] = plotyy(x, s.send,x,s.relative,'plot');
              set(get(AX(1),'Ylabel'),'String','Ylabel_right')
              set(get(AX(2),'Ylabel'),'String','Ylabel_left')


              xlabel('hour')
              title(sprintf('Title %d - %02d - %02d', year,month,day));

              set(H1,'LineStyle','--')
              set(H2,'LineStyle','--')
              hold on;

              plot(AX(1),x,s.rec)
              hold off;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 05.06.2009, 12:32     Titel:
  Antworten mit Zitat      
Nimm statt HOLD ON HOLD ALL oder schaue dir die LineSpec in der Hilfe an.

Oder über die Plot-Tools direkt in der Figure.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2009, 16:35     Titel:
  Antworten mit Zitat      
ich bin da irgendwie zu blöd für, was muss ich schreiben, damit H1 und h3 beide in blau mit unterschiedlichen Symbol dargestellt werden?

Code:
x=0:1:24;
              [AX,H1,H2] = plotyy(x,s.send,x,s.relative,'plot');
              set(get(AX(1),'Ylabel'),'String','Ylabel_right')
              set(get(AX(2),'Ylabel'),'String','Ylabel_left')


              xlabel('hour')
              title(sprintf('Title %d - %02d - %02d', year,month,day));

              set(H1,'LineStyle','--')
              set(H2,'LineStyle','--')
             
              hold all;
              [H3] = plot(AX(1),x,s.rec);
              set(H3,'LineStyle',':')
              hold off;
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 05.06.2009, 16:44     Titel:
  Antworten mit Zitat      
steve hat Folgendes geschrieben:
oder schaue dir die LineSpec in der Hilfe an.

Oder über die Plot-Tools direkt in der Figure.


Wie ich schon sagte: "linespec" in der Matlab-Hilfe eingeben und du bekommst angezeigt, was du eingeben musst um welchen Linien- und Markertyp zu bekommen.

Oder in der geöffneten Figure auf die ganz rechte Schaltfläche klicken (tooltip: "Show Plot Tools and Dock Figure"). Dort kannst du dann deinen Plot bearbeiten wie du willst.

Der Code für dich müsste so lauten:
Code:
set(H1,'LineStyle','-xb') % x - "x" als Marker, b - blau als Farbe
set(H2,'LineStyle','-db') % d - diamonds als Marker, b - blau als farbe


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2009, 17:12     Titel:
  Antworten mit Zitat      
Ich hab das ja probiert, aber es funktioniert leider nicht. Sad
Mit H3 hat Matlab irgendwie Probleme.

Die Formatierung verändern geht nur teilweise. Ich kann das Datenmarkersymbol auf '*' setzen, aber wenn ich dann noch die Farbe ändern möchte, geht das nicht...

Code:

figure ('Visible', 'on');
x=0:1:24;
[AX,H1,H2] = plotyy(x,s.send,x,s.relative,'plot');
box on;
grid on;
             
set(get(AX(1),'Ylabel'),'String','Ylabel_right')
set(get(AX(2),'Ylabel'),'String','Ylabel_left')

xlabel('hour')
title(sprintf('Title %d - %02d - %02d', year,month,day));

set(H1,'LineStyle',':')
set(H2,'LineStyle','--')
           
hold all;
             
[H3] = plot(AX(1),x,s.rec);
set(H3,'LineStyle','*')
                 
hold off;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 05.06.2009, 17:26     Titel:
  Antworten mit Zitat      
Hallo lexis,

funktioniert das?

Code:
H3 = plot(AX(1),x,s.rec,'*b');


Oder das?

Code:
H3 = plot(AX(1),x,s.rec);
set(H3,'LineStyle','*')
set(H3,'Color','b')


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
lexis
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2009, 17:27     Titel:
  Antworten mit Zitat      
Ok, Fehler selbst gefunden.

hold on statt hold all Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
t1master
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.04.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 13.06.2009, 12:03     Titel: 4 Plots mit plotyy
  Antworten mit Zitat      
Hi hat schon jemand mal nach dem gleichen Prinzip die zweite y-Achse angesteuert? Ich bekomme jedesmal die Fehlermeldung " Parent destroyed during line creation" . Habe es schon auf mehreren Rechner versucht. Versionen waren R2007b und R2008a. Handelt es sich hierbei um ein bug?
Mit diesem Code habe ich es versucht:
Code:

X1=0:10:100;
Y1=100:0.1:101;
Y2=[900,901,902,902,902,902,902,902,910,915,915];
Y3=99:0.2:101;
Y4=[800,820,850,856,888,888,888,888,888,888,888];

%Erstellen des Plots
[AX,H1,H2]=plotyy(X1,Y1,X1,Y2);



hold on

%Definieren weiterer Plots

H3=plot(AX(1),X1,Y3);

set(H3,'LineWidth',2)

%Bis hier keine Probleme
%Definition des vierten Plots

H4=plot(AX(2),X1,Y4);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
t1master
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 24.04.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 13.06.2009, 12:57     Titel:
  Antworten mit Zitat      
Habe gerade selbst die Lösung auf der mathworks homepage gefunden.
Für alle die es interessiert:
Vor dem plotten auf die zweite Y-Achse muss "nextplot" auf die Option" add" gesetzt werden, ansonsten wird die Achse zerstört.

Beispiel code:

Code:

[ax,h1,h2]=plotyy(x, y1, x, y2);
hold on
%%%%%%%%%%%%%%%
set(ax(2),’nextplot’,'add’);
%%%%%%%%%%%%%%%
plot(ax(2),x,y3)
hold off
 
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 - 2024 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.