【问题标题】:Having issues scaling date/time labels on MATLAB plot在 MATLAB 绘图上缩放日期/时间标签时遇到问题
【发布时间】:2012-09-24 21:35:31
【问题描述】:

我正在尝试解决我在 MATLAB 中制作的绘图上的轴的一个棘手问题。我想显示温度预测的日期和时间(因此绘制的日期标签本质上是预测“有效”的小时,以 3 小时为增量)。值的范围约为 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")?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你必须弄乱坐标区的 ytick 属性:

    ticks = get(gca, 'ytick') 
    

    将为您提供X 轴上当前分配的刻度线的向量。您可以使用这些来设置所需的刻度数:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      相关资源
      最近更新 更多