在matlab中将日期添加到折线图中

时间:2018-02-11 15:51:16

标签: matlab

让我们假设我们有以下日期

Year    Number
2003    632
2004    559
2005    567
2006    540
2007    628
2008    517

我希望绘制的是一个折线图,对于这个我使用的绘图命令,但是关于日期我知道有两个函数datenum和datetick,对于最后一个我知道有这样的格式&#39; < / p>

datetick(‘x’, ‘dd mmm yy’, ‘keeplimits’, ‘keepticks’) 

请告诉我究竟如何使用这两个命令将年份添加到x轴?我试过以下命令

>> plot(datenum(Year),number)
>> datetick('x','yyyy','keeplimits','keepticks');

但x轴的格式不正确。提前谢谢

2 个答案:

答案 0 :(得分:2)

您只有年份编号(不是月份和日期),因此只需plot作为:

plot(Year, Number); 
set(gca,'XTick',Year);  %if necessary

OUTPUT

答案 1 :(得分:2)

由于您只有几年,我可以看到获得正确日期的最佳datenum重载如下:

  

DateNumber = datenum(Y,M,D)返回序列号   Y,M和D(年,月,日)数组的相应元素。   数组必须具有相同的大小(或任何可以是标量)。你也是   可以将输入参数指定为日期向量,[Y,M,D]。

你可以传递月值和日值的虚拟值(例如1),因为你想要显示的只是几年:

C = {
  2003    632
  2004    559
  2005    567
  2006    540
  2007    628
  2008    517
};

T = cell2table(C,'VariableNames',{'Year' 'Number'});

plot(datenum(T.Year,1,1),T.Number);
datetick('x','yyyy','keeplimits','keepticks');

或者,您可以使用年份值来定义x轴刻度,如下所示:

C = {
  2003    632
  2004    559
  2005    567
  2006    540
  2007    628
  2008    517
};

T = cell2table(C,'VariableNames',{'Year' 'Number'});

plot(T.Year,T.Number);
set(gca,'XTick',T.Year);