首页 文章

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

提问于
浏览
0

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

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

而且我想绘制的是一个折线图,对于这个我用的绘图命令,但是关于日期我知道有两个函数datenum和datetick,对于最后一个我知道有这样的格式'

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

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

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

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

2 回答

  • 2

    你只有年号(不是月份和日期),所以只需plot

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

    OUTPUT

  • 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);
    

相关问题