0

x 軸に 528 点のプロットがあります。x 軸は mmm yyyy でラベル付けされます。その上にデータをプロットしたいのですが、データは月次形式です。毎月のデータ ポイントのそれぞれを取得し、月の初めにドットとしてプロットしたいと考えています。

% Axis and plot
t = 731:1258; % 20120101 to 20130611
y = reshape(dataPoint_Anom1x1(:,:,731:end),[],1); % Size 528x1
x = datenum(2009, 12, 31) + t; % Convert t into serial numbers

plot(x, y); % Plot data

hold on

下の部分は私が問題を抱えている部分です。dataPoint_Clim1x1 のサイズは 12x1 です。(1,1) は 1 月に対応し、(2,1) は 2 月に対応します。2012 年 1 月から 2013 年 6 月までの各月の初めに、対応する月の気候ポイントをドットとしてプロットする必要があります。

%%%% Plot climatology on the same graph
dataClim_1x1 = dataClim(u,v,:); % Array that only contains points 1 degree away from 72.5E and 67.25S
B = mean(dataClim_1x1);  % Average along the column
dataPoint_Clim1x1 = mean(B,2); % Average along the row

x_dataClim = ???
y_dataClim = reshape(dataPoint_Clim1x1, [],1); % Change dataPoint_Clim1x1 into a 1 column matrix 


plot(x_dataClim,y_dataClim) % y_dataClim is only 12x1. 

したがって、上記のプロット コマンドは間違っています。どういうわけかdatenumで毎月プロットするようにx軸を設定する必要がありますか? ただし、2 次軸は使用したくありません。

4

2 に答える 2

1

ポイントのx座標を定義するだけでよいと思います

x_dataClim = datenum(2011, 1:12, 1);

これにより、「月の最初」が生成されます。

>> datestr(x_dataClim)

ans = 

01-Jan-2011
01-Feb-2011
01-Mar-2011
01-Apr-2011
01-May-2011
01-Jun-2011
01-Jul-2011
01-Aug-2011
01-Sep-2011
01-Oct-2011
01-Nov-2011
01-Dec-2011

クールなのは、実際に「来年に入る」ことができるということです。

>> datestr(datenum(2011, 11:14, 1)) 

ans =

01-Nov-2011
01-Dec-2011
01-Jan-2012
01-Feb-2012
于 2013-07-09T16:31:32.133 に答える
0

これが私がやったことです:

x = datenum(2011,1:30,1); % 30 months of data (2 and 1/2 years)
y_dataClim = reshape(dataPoint_Clim1x1, [],1); % Change dataPoint_Clim1x1 into a 1 column matrix 
y = cat(1, y_dataClim, y_dataClim, y_dataClim(1:6,:));
scatter(x,y, 50,'fill'); % Plot scatter plot
于 2013-07-10T14:26:41.113 に答える