2012-10-03 79 views
1

我試圖解決一個棘手的問題,就是我在MATLAB中繪製的座標軸。我想顯示溫度預測的日期和時間(因此日期標籤繪製的時間基本上是預測「有效」的小時,以3小時爲增量)。該值的範圍是約5天,但是我的當前情節只示出在圖中的前五個預測倍(而不是在整個範圍內,但只與幾個點),如下圖所示:在MATLAB圖上遇到縮放日期/時間標籤的問題

The Incorrect time axes

我目前正在通過創建一個包含日期標籤的字符串矢量(從DateVectors矩陣生成)來顯示這些標籤。這樣做的代碼是:

% Format all the dates into strings that can be displayed on the graph 
for rid = 1:numRows 
    rowdate = formattedDates(rid,:); % DateVector for this forecast step 
    fcstDateStrs{rid} = datestr(rowdate, 'dd-mmm-yyyy HHZ'); 
end 

然後,我把這些日期爲y軸與線set(gca,'XtickLabel', {}, 'YtickLabel', fcstDateStrs)。有沒有一種方法可以縮放該軸上的標籤以顯示所有日期標籤的正確縮放比例(這樣第一個標籤就像「03-Oct-2012 06Z」,最後一個標籤就像「08-Oct- 2012 06Z「)?

回答

1

你必須混亂與軸的ytick屬性:

ticks = get(gca, 'ytick') 

會給你當前分配的刻度線的矢量對X軸。您可以使用這些設置你想要的蜱數量:

newTicks = linspace(ticks(1), ticks(end), numel(fcstDateStrs)); 
set(gca,... 
    'Yticks'  , newTicks,... 
    'YtickLabels', fcstDateStrs); 

注意,因爲你現在已經設置的蜱和蜱手動標籤,重新縮放的情節會有些尷尬 - 這一步是隻一旦你確信這個情節不會再有太大的改變就會被執行。