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

Zwei y Achsen mit mehreren Datensätzen

 

mr_endres
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 11.06.2008, 21:44     Titel: Zwei y Achsen mit mehreren Datensätzen
  Antworten mit Zitat      
Hallo,

ich habe bereits einen Beitrag gefunden, der erklärt wie ich zwei Datensätze mit zwei unterschiedlichen y-Achsen plotte. ->plotyy(x,y1,x,y2) ...

Ich möchte allerdings mehrere y-Datensätze (z.B. y11,y12,y13..) für die linke y-Achse plotten und mehrere (z.B. y21,y22,y23...) für die rechte; alles bei gleicher x-Achse.

Doch plotyy nimmt ja nur zwei y Datensätze an. Weiß jmd. ob das überhaupt geht ?

Vielen Dank schon mal für die Mühe.

mfg Johannes
Private Nachricht senden Benutzer-Profile anzeigen


Michael Sams
Forum-Anfänger

Forum-Anfänger



Beiträge: 24
Anmeldedatum: 18.05.08
Wohnort: ---
Version: R2008a
     Beitrag Verfasst am: 11.06.2008, 22:06     Titel:
  Antworten mit Zitat      
Hi Johannes,

du kannst in die zwei Y-Datensätze ja mehrere Vektoren hinzufügen.

Kleines Beispiel:
Code:

x=[1:100];
y1=x;
y2=x.*x;
y3=x.^3;
y4=x.^4;

%Jetzt wird der Vektor y1 in die erste Zeile von y5 geschrieben
%und der Vektor y2 in die zweite Zeile von y5

y5(1,:)=y1;
y5(2,:)=y2;

%und das selbe mit y3 & y4 in y6

y6(1,:)=y3;
y6(2,:)=y4;

%somit hast du alle vier Graphen in einen plotyy

plotyy(x,y6,x,y5);
 


Hoffe das HILFT! Wink
_________________

-------------------------
Best Regards
Michael Sams
Private Nachricht senden Benutzer-Profile anzeigen
 
mr_endres
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 78
Anmeldedatum: 11.06.08
Wohnort: Unterfranken
Version: ---
     Beitrag Verfasst am: 11.06.2008, 22:31     Titel:
  Antworten mit Zitat      
Vielen Dank, das hat sehr geholfen, funktioniert wunderbar. Ich dachte nicht das man das so machen kann.

Was mich allerdings wundert ist, daß es wohl egal ist ob ich:
x,[y1;y2] mit x,y1,y2 zeilenvektoren der selben Dimension , oder
x,[y1',y2'] mit x,y1,y2 zeilenvektoren der selben Dimension als Argument (z.B. der normalen plot funktion) übergebe.
schaut die plot funktion nur ob es eine gemeinsame dimension gibt und wählt dann selber die y datensätze aus; ich dachte es wäre festgelegt, daß wenn x zeilenvektoren auch yi zeilenvektoren sein müssen, welche dann zu einer matrix zusammengefaßt werden, in der die yi untereinander stehen.

also nochmal danke, das hat mir wirklich sehr weitergeholfen.

mfg johannes
Private Nachricht senden Benutzer-Profile anzeigen
 
s4y
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 14:48     Titel:
  Antworten mit Zitat      
Hallo, ich hab mal noch eine Frage bezüglich deines Programmes. Wie kann man damit eine Legende einfügen, welche zu den Graphen passt. Bei mir werden dann in der Legende immer falsche Farben angegeben. Oder kann man die Graphen noch anders unterscheiden, sodass man kenntlich machen kann, welcher welcher ist?
Vielen Dank schonmal im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Michael Sams
Forum-Anfänger

Forum-Anfänger



Beiträge: 24
Anmeldedatum: 18.05.08
Wohnort: ---
Version: R2008a
     Beitrag Verfasst am: 06.10.2009, 17:41     Titel:
  Antworten mit Zitat      
Hi,

eine Lösung die funktionieren würde:

Code:
clear all;

x=[-10:1/10:10];
y1=x;
y2=x.^2;
y3=x.^3;
y4=x.^4;

% Jetzt wird der Vektor y1 in die erste Zeile
% von y5 geschrieben
% und der Vektor y2 in die zweite Zeile von y5

y5(1,:)=y1; % linear
y5(2,:)=y2; % quadratisch

% und das selbe mit y3 & y4 in y6

y6(1,:)=y3; % cubisch
y6(2,:)=y4; % 4-te potenz

% somit hast du alle vier Graphen in einen plotyy
% der erste Vektor y5 beihaltet y1 & y2
% der zweite Vektor y6 beinhaltet y4 & y4

[AX,H1,H2] = plotyy(x,y5,x,y6);

% H1 beinhaltet die handles von y1 und y2
% H2 beinhaltet die handles von y3 und y4

func_handle(1,1) = H1(1,1);
func_handle(2,1) = H1(2,1);
func_handle(3,1) = H2(1,1);
func_handle(4,1) = H2(2,1);

% wir benötigen jetzt für die Legende einen
% handle-Vektor mit allen handles (y1...y4)
% deswegen schreiben wir alle vier handles in
% einen Vektor - z.B. func_handle

legend(func_handle,'y1 - x','y2 - x^2',...
    'y3 - x^3','y4 - x^4');

axis([-10,10,-10,10]);
grid on;

 


...definitiv nicht die eleganteste - aber mit der bastelst du dir einfach einen "handle-Vektor" mit allen handles - und so definierst du deine Legende! Wink
...für genaueres, gibts noch die wirklich spitzenmäßige Matlab-Hilfe! Suchbegriff: "plotyy" und "legend" Idea

Best Regards
Michael
_________________

-------------------------
Best Regards
Michael Sams
Private Nachricht senden Benutzer-Profile anzeigen
 
webbi
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 01.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2009, 19:25     Titel:
  Antworten mit Zitat      
servus!

wie kann man denn bei der Funktion plotyy die Farben für die Graphen auswählen bzw. beliebig verändern?
Im Code weiß ich nicht wo und in den Plot tools gehts auch nur für 2 Graphen. Die anderen scheinen überlagert.

Gruß, webbi
Private Nachricht senden Benutzer-Profile anzeigen
 
Michael Sams
Forum-Anfänger

Forum-Anfänger



Beiträge: 24
Anmeldedatum: 18.05.08
Wohnort: ---
Version: R2008a
     Beitrag Verfasst am: 02.11.2009, 21:36     Titel:
  Antworten mit Zitat      
Code:
clear all;
 
x=[-10:1/10:10];
y1=x;
y2=x.^2;
y3=x.^3;
y4=x.^4;
 
% Jetzt wird der Vektor y1 in die erste Zeile
% von y5 geschrieben
% und der Vektor y2 in die zweite Zeile von y5
 
y5(1,:)=y1; % linear
y5(2,:)=y2; % quadratisch
 
% und das selbe mit y3 & y4 in y6
 
y6(1,:)=y3; % cubisch
y6(2,:)=y4; % 4-te potenz
 
% somit hast du alle vier Graphen in einen plotyy
% der erste Vektor y5 beihaltet y1 & y2
% der zweite Vektor y6 beinhaltet y4 & y4
 
[AX,H1,H2] = plotyy(x,y5,x,y6);
 
% H1 beinhaltet die handles von y1 und y2
% H2 beinhaltet die handles von y3 und y4
 
func_handle(1,1) = H1(1,1);
set(func_handle(1,1),'Color','blue');
func_handle(2,1) = H1(2,1);
set(func_handle(2,1),'Color','red');
func_handle(3,1) = H2(1,1);
set(func_handle(3,1),'Color','black');
func_handle(4,1) = H2(2,1);
set(func_handle(4,1),'Color','magenta');
 
% wir benötigen jetzt für die Legende einen
% handle-Vektor mit allen handles (y1...y4)
% deswegen schreiben wir alle vier handles in
% einen Vektor - z.B. func_handle
 
legend(func_handle,'y1 - x','y2 - x^2',...
    'y3 - x^3','y4 - x^4');
 
axis([-10,10,-10,10]);
grid on;
 

_________________

-------------------------
Best Regards
Michael Sams
Private Nachricht senden Benutzer-Profile anzeigen
 
webbi
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 01.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2009, 11:22     Titel:
  Antworten mit Zitat      
danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 12.12.2012, 16:27     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank erstmal! Das Beispiel hat mir auch sehr viel weitergeholfen. Ich stehe jedoch noch vor dem Problem, dass ich den YTick der rechten y-Achse noch ändern möchte, es aber nicht hinbekomme.
Nutze ich vllt das falsche handle? Bitte um eine kleine Hilfestellung.

Bis zu diesem Punkt funktioniert alles wie gewünscht:

Code:
func_handle(1,1) = H1(1,1);
set(func_handle(1,1),'Color','blue');
func_handle(2,1) = H1(2,1);
set(func_handle(2,1),'Color','red');
func_handle(3,1) = H2(1,1);


jetzt möchte ich aber noch, dass die y_achse auf der rechten seite einen anderen YTick bekommt. Hiermit funktioniert es bei mir nicht:
Code:

set(func_handle(3,1),'YTick',1:2:12);


Ich vermute ich muss ein anderes Handle verwenden habe aber keine Idee welches.

grüße,

mad
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 12.12.2012, 16:40     Titel:
  Antworten mit Zitat      
hallo zusammen,

ich habe nochmal in der Doku von plotyy nachgesehen. ich kann das mit dem handle AX machen.

Code:

set(AX(1),'YTick',0:50:300);
set(AX(2),'YTick',0:2:10);
 


ich habe jetzt allerdings die Markierungen der linken y_achse auch auf der rechten Seite. Kann ich die irgendwie ausblenden? Bei der Gelegenheit würde ich auch gerne die marker an der achse oben ausblenden.
Private Nachricht senden Benutzer-Profile anzeigen
 
madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 12.12.2012, 16:54     Titel:
  Antworten mit Zitat      
schon wieder ich Smile

das geht mir 'Box'! hat sich also erledigt

Code:
set(AX(1), 'Box', 'off');
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.12.2012, 11:06     Titel:
  Antworten mit Zitat      
Hallo madlab,

Es ist im Allgemeinen nicht nützlich, eine Frage an einen 3 Jahre alten Thread anzuhängen. Ein neuer Thread mit einem Link zum alten ist praktischer. Dann ist auch das "beantwortet"-Flag wieder sinnvoll.

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 - 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.