做数据分析的Matlab用户最常见的问题之一是如何在日期轴上绘制数据。很多时候,分析师最初会使用Excel处理数据,然后用相应的工具去处理数据,分析数据。Excel有一种在日期轴上绘制数据的简单方法,但在Matlab中使用日期轴需要麻烦一点。但matlab针对这种特殊情况也有对应的一些函数,使用Matlab完成这项任务并不难,而且和大多数Matlab函数一样,它具有相当大的通用性。
Matlab用户应该熟悉的几个函数是datenum、datevec和datestr。Matlab将每个日期编码为数字,从1月1日开始,0000作为数字1。使用datenum,用户可以用字符串或多个参数指定日期和时间。要从datenum中检索日期和时间,用户可以使用datevec。Matlab将datenum的输出用于绘图上的x轴数据。
例如,假设用户希望以6个月的间隔绘制3年的数据。首先要创建要绘制的日期、月份和年份的矢量。之后,将这些矢量转换为日期数字,并根据数据绘制日期数字。接下来,将记号设置为与日期数字相对应,使用datestr将日期数字转换为日期字符串,并将记号标签设置为日期字符串。
代码语言:javascript复制%Set up dates
years = [2001; 2001; 2002; 2002; 2003; 2003];
months = [1 7 1 7 1 7];
days = ones(1,6);
for k = 1:6
dates(k) = datenum(years(k), months(k), days(k));
end
%Plot Data
plot(dates, 100 20*rand(1,6), 'o')
%Set Ticks
labels = datestr(dates, 12);
set(gca, 'XTick', dates);
set(gca, 'XTickLabel', labels);
%Label Axes and Set Title
xlabel('Date')
ylabel('Sales')
title('Example of Date Axis')