0

次の例では、対応する日付の配列を持つ data_2007 と data_2008 で示される 2 年分のデータがあります。

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);

データを 1 つのグラフにプロットして、2 年間でデータがどのように変化したかを示したいので、基本的には 2 年間にわたるプロットです。日付を x 軸に沿って表示する必要があり、月名 (mmm) のみを指定する必要があることを考えると (yyyy-mm-dd HH:MM ではありません)、これをどのように達成できますか。

4

2 に答える 2

1

datetickを使用します。あなたの日付はただdatenumでなければなりません:

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');

次のようにプロットできます。

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

ティックに別の形式が必要な場合は、次を試してください。

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

また、目盛りの位置を自分で選択したい場合 (実際に目盛りを指定するには、 を使用する必要がある場合があります。軸のプロパティset(gca, 'XTick', ...)を参照してください):

datetick('x', 'keepticks');
于 2012-04-11T09:08:03.903 に答える
1

datetick軸にラベルを付けるコマンドを試しましたか?

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

日付を日付文字列に変換せず、プロットのために元に戻す必要がある場合は、より簡単になる可能性があります。

于 2012-04-11T09:09:00.907 に答える