在 Matlab 中,我有以下形式的数据:
- “z”,一个 17'256x1 double ,包含回归的残差,例如-0.0596
- “日期”,一个 17'256x1 单元格,包含回归中每个观测值(以及残差)的日期和时间戳,例如'10/3/2011 9:30:00 PM'
我想做的事: 绘制残差与日期戳作为标签。观察结果并非来自连续的几天序列(即,几天之间可能存在一些没有观察结果的间隙),并且某些日子比其他日子有更多的观察结果。我不能为每个观察添加一个标签,因为那样标签就会太多。所以我需要以某种方式将它们分组,按天或按月。也就是说,仅显示当天所有观测值下的月份和日期(例如 10/3),或者仅显示该月所有观测值下的月份(例如 3)。我怎样才能利用我拥有的数据做到这一点?
最佳答案
您应该能够在不“分组”的情况下绘制此图。如果将日期转换为时间戳:
timestamps = cellfun(@(date)datenum(date), dates);
然后你就可以做正常的绘图了:
plot(timestamps, z);
Matlab 将自行处理 xaxis 标签(即,它将在日期的时间范围内均匀分布它们),但它们将是时间戳数字。要获取 x 轴上的格式化日期,请使用:
datetick('x');
关于matlab - 在 Matlab 中使用 "label grouping"绘制时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153059/