1

MATLAB で作成しているプロットの軸に関するトリッキーな問題を修正しようとしています。気温予報の日付と時刻を表示したい (したがって、プロットされた日付ラベルは、基本的に、予報が「有効」である時間であり、3 時間単位で表示されます)。値の範囲は約 5 日ですが、以下に示すように、現在のプロットでは最初の 5 つの予測時間のみが表示されています (範囲全体ではなく、いくつかのポイントのみ)。

間違った時間軸

現在、日付ラベルを含む文字列のベクトルを作成してこれらのラベルを表示しています (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")?

4

1 に答える 1

1

ytick軸のプロパティをいじる必要があります。

ticks = get(gca, 'ytick') 

X-軸に現在割り当てられている目盛りのベクトルが表示されます。これらを使用して、必要なティックの量を設定できます。

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

目盛りと目盛りラベルを手動で設定したので、プロットの再スケーリングはやや厄介になることに注意してください。この手順は、プロットがこれ以上変更されないことがかなり確実な場合にのみ実行されます。

于 2012-10-04T04:48:54.980 に答える