2

我正在尝试绘制一堆平均为 2 分钟的数据,并且我希望 xaxis 上的标签显示日/月小时:分钟。我可以在 xaxis 上显示一些日期,但有一些问题:

  1. xticks 的位置与我的数据不一致(参见代码片段)
  2. 在我的真实数据中,我有 +1000 点,所以我想在特定的时间间隔内进行标记,比如每 12 小时一次。

下面是一个示例。非常欢迎任何帮助。

%make date vec
ds = {'28/01/2000 11:52:00';'28/01/2000 11:54:00';'28/01/2000 11:56:00'};
x = datenum(ds,'dd/mm/yyyy HH:MM:SS')

y = [1,2,3]; %data
plot (x,y,'x')

%define start and end date for xAxis
startDate = x(1)
endDate = x(end)
xdata = linspace(startDate,endDate,5)
set(gca,'XTick',xdata)
datetick('x','dd/yy HH:MM')
4

3 回答 3

1

将选项添加keepticksdatetick通话中。在我的 R2012a 上修复了一些问题:

datetick('x','dd/yy HH:MM','keepticks')

来源:thisdatetick doc

于 2012-11-13T13:49:42.100 回答
0

一种解决方案是不要使用datetick()自己设置刻度标签。所以用这两行替换你的最后一行代码:

    dsdata = datestr(xdata, 'dd/yy HH:MM');
    set(gca,'XTickLabel',dsdata);
于 2012-11-13T13:36:40.003 回答
0

这对我每分钟都有效

    step=2.5/3600;  % minute
    debut = (floor(pts_dthgps(1)/step))*step;
    fin = (floor(pts_dthgps(sz)/step))*step;
    figure(2);
    h=plot(pts_dthgps, pts_vitgps);
    set(gca, 'XTick', [debut:step:fin]);
    datetick('x','HH:MM','keeplimits','keepticks');
于 2013-12-14T11:31:09.833 回答