2012-04-11 8 views
0

Im folgenden Beispiel habe ich zwei Jahre im Wert von Daten, die durch data_2007 bezeichnet und data_2008, die eine entsprechende Anordnung von Daten haben:Stück erstreckt mehrere Jahre

clear all 
DateTime_2007 = datestr(datenum('2007-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:... 
    datenum('2007-12-31 23:57','yyyy-mm-dd HH:MM'),... 
    'yyyy-mm-dd HH:MM'); 
DateTime_2007 = cellstr(DateTime_2007); 

DateTime_2008 = datestr(datenum('2008-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:... 
    datenum('2008-12-31 23:57','yyyy-mm-dd HH:MM'),... 
    'yyyy-mm-dd HH:MM'); 
DateTime_2008 = cellstr(DateTime_2008); 

data_2007 = 1 + (20-1).*rand(8760,1); 
data_2008 = 1 + (20-1).*rand(8784,1); 

würde Ich mag auf einer Kurve, die die Daten aufzuzeichnen, die zeigen, wie sich die Daten über die 2 Jahre verändert haben, also im Grunde eine Handlung, die sich über 2 Jahre erstreckt. Wie kann dies erreicht werden, wenn man berücksichtigt, dass die Daten entlang der X-Achse angezeigt werden müssen und nur der Monatsname (mmm) angegeben werden kann (nicht JJJJ-MM-TT HH: MM).

Antwort

1

Haben Sie den Befehl datetick versucht, die Achsen zu beschriften?

plot(datenum(DateTime_2007),data_2007) 
hold on 
plot(datenum(DateTime_2008),data_2008,'g') 
datetick('x','mmm') 

Es könnte einfacher sein, wenn Sie nicht Ihre Daten zu Datum Strings konvertieren und sie dann zum Plotten zurück zu konvertieren.

1

Verwenden Sie datetick. Ihre Reisedaten nur datenum- sein sollte:

DateTime_2008 = datenum('2008-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:... 
datenum('2008-12-31 23:57','yyyy-mm-dd HH:MM'); 

und Sie können es gerne Grundstück:

plot([DateTime_2007 DateTime_2008], [data_2007; data_2008]); 
datetick('x'); 

Wenn Sie ein anderes Format für die Ticks wollen, versuchen Sie:

datetick('x', 'yyyy-mm'); 

und wenn Sie Möchten Sie den Speicherort der Ticks selbst auswählen (um die Ticks tatsächlich anzugeben, müssen Sie möglicherweise set(gca, 'XTick', ...) verwenden, siehe axes properties):

datetick('x', 'keepticks');