2015-10-20 60 views
1

我試圖找到一個解決方案來繪製數據系列與日期時間變量集合。如何調整時間圖上的X軸標籤?

的日期時間變量集合是「2015年1月1日一時10分00秒」的初始格式,所以我轉換他們更好的格式使用datenum,像下面的工作:

% Original Date Time Variable - Data.datetime.str(j,1:19) 

Auxiliar.formatIn = 'dd/mm/yyyy HH:MM:SS'; 
for j = 1:length(Data.time) 
    Data.datetime.num(j,1) = datenum(Data.datetime.str(j,1:19), Auxiliar.formatIn); 
end 

之後,它可以繪製使用一切:

% Original Data Series - Data.anem1.max 

plot(Data.datetime.num, Data.anem1.max) 
labels = datestr(Data.datetime.num, 6); 
set(gca, 'XTick', Data.datetime.num); 
set(gca, 'XTickLabel', labels); 

但結果是這裏所示:

x軸上的高密度標籤對我沒有好處,例如,不可能看到任何東西,並且數據系列的某些點在同一天共享。

我應該如何繼續在同一天展示一次,限制一定量的標籤?

回答

0

您可以使用一個事實,即MATLAB datenums都以天爲單位生成您的標籤:

days = [floor(min(Data.datetime.num)):ceil(max(Data.datetime.num))] 

labels = datestr(days, Auxiliar.formatIn) 

plot(Data.datetime.num, Data.anem1.max) 
set(gca, 'XTick', days); 
set(gca, 'XTickLabel', labels); 

days將代表從午夜到天整數數據的開始到午夜前一個數組結束後。如果你想中午而不是午夜,你可以做days = days + 0.5。您可能還想根據輸出格式將datestr(days(i), Auxiliar.formatIn)替換爲適合您的內容。

+0

小小的調整後,完美的工作。 我會的,但我沒有足夠的聲望去做,我試過了。 :( –

+0

在這種情況下謝謝。還有,編輯。 –