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

Achsenskalierung verschiebt Graphen bei Plotyy

 

daniel89
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.06.2012, 10:33     Titel: Achsenskalierung verschiebt Graphen bei Plotyy
  Antworten mit Zitat      
Hallo ich habe folgendes Problem:
Ich benutze die plotty fkt um einen Graphen mit mehreren y-Achsen zu plotten. Zusätzlich habe ich die x-Achse skaliert... siehe Code

Wenn ich nun 2 gleiche Graphen plotten will sind diese jedoch verschoben,obwohl sie eigt übereinander liegen sollten.
Wenn ich die Skalierung deaktiviere liegen sie übereinander!
Findet jmd meinen Fehler?
Code:
y1 = (matrix_av(1:120,13));    %% temp außen
y2= (matrix_av(1:120,13));     %% temp innen




startDate=matrix_av(120,44);
endDate=matrix_av(1,44);
 xData=linspace(startDate,endDate,120);



figure
[AX,H1,H2] = plotyy(xData,y1,xData,y2,'plot')
set(gca,'XTick',xData);

 
 set(AX(1:2),'XTickLabel',[]);

alte_ticks= get(gca,'Xtick')
 set(gca,'XTick',alte_ticks(1:12:end))

datetick('x','d','keepticks');

set(get(AX(1),'Ylabel'),'String','Temp.außen')
set(get(AX(1),'Ylabel'),'FontSize',FontSize)
set(get(AX(2),'Ylabel'),'String','J/s')
set(get(AX(2),'Ylabel'),'FontSize',FontSize)

xlabel('Datum','FontSize',FontSize)
title('Temperatur-Leistungs-Diagramm','FontSize',FontSize)

set(H2,'LineWidth',2,'Color',[1 0 0])  
set(H1,'LineWidth',2,'Color',[0 0 1])  
set(AX(2),'FontSize',FontSize,'YColor',[1 0 0]);
set(AX(1),'FontSize',FontSize,'YColor',[0 0 1]);  

 


Zuletzt bearbeitet von daniel89 am 13.06.2012, 11:55, insgesamt einmal bearbeitet
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.06.2012, 11:09     Titel: Re: Achsenskalierung verschiebt Graphen bei Plotty
  Antworten mit Zitat      
Hallo daniel89,

PLOTYY erzeugt zwei AXES Objekte. Wenn ich Dich richtig verstehe, skalierst Du in:
Code:
set(gca,'XTick',xData);
...
set(gca,'XTick',alte_ticks(1:12:end))
datetick('x','d','keepticks');

Die X-Werte der GCA, also einer der beiden AXES Objekte. Das verschiebt dann natürlich das Diagramm.
Vielleicht möchtest Du stattdessen die XTicks für beide AXES setzen, also AX statt GCA verwenden.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.06.2012, 11:19     Titel:
  Antworten mit Zitat      
Hi,
ich verstehe nicht ganz, wie ich deine Antwort umsetzen soll.
Einfach alle gca durch AX ersetzen?
Ich bin leider noch nicht so fit in MAtlab....

Vielen Dank!!
Private Nachricht senden Benutzer-Profile anzeigen
 
daniel89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 13.06.2012, 13:51     Titel:
  Antworten mit Zitat      
anbei ein Bild um mein Problem zu verdeutlichen:

beim plotten gleicher Werte kommt es zu einer Verschiebung....

test2.pdf
 Beschreibung:

Download
 Dateiname:  test2.pdf
 Dateigröße:  4.33 KB
 Heruntergeladen:  434 mal
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: 14.06.2012, 09:18     Titel:
  Antworten mit Zitat      
Hallo daniel89,

Zitat:
Einfach alle gca durch AX ersetzen?

Genau das würde ich einfach mal ausprobieren. Wenn es nicht funktioniert, kann man in dieser Richtung weiter forschen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 14.06.2012, 10:25     Titel:
  Antworten mit Zitat      
Wenn ich gca durch AX ersetze, erhalte ich tatsächlich nur einen Graph, und die Fehlermeldung
Code:
Error using set
Conversion to double from cell is not possible.

Error in Plot_week (line 29)
 set(AX,'XTick',alte_ticks(1:12:end))


D.h. der plot wurde aufgrund eines Fehlers vor der Skalierung abgebrochen.
Leider bringt mich das nicht wirklich weiter.....


Mein Code sah so aus:
Code:
y1 = (matrix_av(1:120,13));    %% temp außen
y2= (matrix_av(1:120,13));     %% temp innen




startDate=matrix_av(120,44);
endDate=matrix_av(1,44);
 xData=linspace(startDate,endDate,120);



figure
[AX,H1,H2] = plotyy(xData,y1,xData,y2,'plot')
set(AX,'XTick',xData);
grid on
 
 set(AX(1:2),'XTickLabel',[]);

alte_ticks= get(AX,'Xtick')
 set(AX,'XTick',alte_ticks(1:12:end))

datetick('x','dd','keepticks');

set(get(AX(1),'Ylabel'),'String','Temp.außen')
set(get(AX(1),'Ylabel'),'FontSize',FontSize)
set(get(AX(2),'Ylabel'),'String','J/s')
set(get(AX(2),'Ylabel'),'FontSize',FontSize)

xlabel('Datum','FontSize',FontSize)
title('Temperatur-Leistungs-Diagramm','FontSize',FontSize)

set(H2,'LineWidth',2,'Color',[1 0 0])  
set(H1,'LineWidth',2,'Color',[0 0 1])  
set(AX(2),'FontSize',FontSize,'YColor',[1 0 0]);
set(AX(1),'FontSize',FontSize,'YColor',[0 0 1]);  
 


So sollte ich es testen oder?

Lg
Daniel
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: 14.06.2012, 17:48     Titel:
  Antworten mit Zitat      
Hallo daniel89,

Du musst in der Tat nicht alle GCA durch AX ersetzen. In der Zeile:
Code:
alte_ticks= get(AX,'Xtick')

führt dies zu Problemen, weil GET ein CELL zurückliefert, wenn es mit mehreren Handles aufgerufen wird. Hier würde ich also:
Code:
alte_ticks= get(AX(1), 'Xtick')

verwenden.

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.