Achsenskalierung verschiebt Graphen bei Plotyy
daniel89
Forum-Anfänger
Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
Verfasst am : 13.06.2012, 10:33
Titel : Achsenskalierung verschiebt Graphen bei Plotyy
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
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 13.06.2012, 11:09
Titel : Re: Achsenskalierung verschiebt Graphen bei Plotty
Hallo daniel89,
PLOTYY erzeugt zwei AXES Objekte. Wenn ich Dich richtig verstehe, skalierst Du in:
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
daniel89
Themenstarter
Forum-Anfänger
Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
Verfasst am : 13.06.2012, 11:19
Titel :
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!!
daniel89
Themenstarter
Forum-Anfänger
Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
Verfasst am : 13.06.2012, 13:51
Titel :
anbei ein Bild um mein Problem zu verdeutlichen:
beim plotten gleicher Werte kommt es zu einer Verschiebung....
Beschreibung:
Download
Dateiname:
test2.pdf
Dateigröße:
4.33 KB
Heruntergeladen:
434 mal
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 14.06.2012, 09:18
Titel :
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
daniel89
Themenstarter
Forum-Anfänger
Beiträge: 18
Anmeldedatum: 26.04.12
Wohnort: Aachen
Version: ---
Verfasst am : 14.06.2012, 10:25
Titel :
Wenn ich gca durch AX ersetze, erhalte ich tatsächlich nur einen Graph, und die Fehlermeldung
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
Jan S
Moderator
Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
Verfasst am : 14.06.2012, 17:48
Titel :
Hallo daniel89,
Du musst in der Tat nicht alle GCA durch AX ersetzen. In der Zeile:
führt dies zu Problemen, weil GET ein CELL zurückliefert, wenn es mit mehreren Handles aufgerufen wird. Hier würde ich also:
verwenden.
Gruß, Jan
Einstellungen und Berechtigungen
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
| 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.