在MATLAB图上有缩放日期/时间标签的问题

时间:2012-10-03 21:37:45

标签: matlab

我正在尝试用我在MATLAB中制作的图上修复轴的棘手问题。我想显示温度预测的日期和时间(因此绘制的日期标签基本上是预测“有效”的小时,以3小时为增量)。值的范围大约是5天,但是我当前的图是仅显示图上的前五个预测时间(而不是整个范围,但只有几个点),如下所示:< / p>

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 个答案:

答案 0 :(得分:1)

你必须弄乱轴的ytick属性:

ticks = get(gca, 'ytick') 

将为您提供X - 轴上当前分配的标记的向量。您可以使用它们来设置所需的刻度数量:

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

请注意,由于您现在手动设置了刻度和刻度标签,因此重新缩放绘图会有些尴尬 - 只有在您确定绘图不会再有太大变化时才执行此步骤。