我正在尝试用我在MATLAB中制作的图上修复轴的棘手问题。我想显示温度预测的日期和时间(因此绘制的日期标签基本上是预测“有效”的小时,以3小时为增量)。值的范围大约是5天,但是我当前的图是仅显示图上的前五个预测时间(而不是整个范围,但只有几个点),如下所示:< / p>
我目前正在通过创建包含日期标签的字符串向量(从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“)?
答案 0 :(得分:1)
你必须弄乱轴的ytick
属性:
ticks = get(gca, 'ytick')
将为您提供X
- 轴上当前分配的标记的向量。您可以使用它们来设置所需的刻度数量:
newTicks = linspace(ticks(1), ticks(end), numel(fcstDateStrs));
set(gca,...
'Yticks' , newTicks,...
'YtickLabels', fcstDateStrs);
请注意,由于您现在手动设置了刻度和刻度标签,因此重新缩放绘图会有些尴尬 - 只有在您确定绘图不会再有太大变化时才执行此步骤。