Matlab 延长几年的地块

Matlab 延长几年的地块,matlab,plot,Matlab,Plot,在下面的示例中,我有两年的数据,由data_2007和data_2008表示,它们具有相应的日期数组: clear all DateTime_2007 = datestr(datenum('2007-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:... datenum('2007-12-31 23:57','yyyy-mm-dd HH:MM'),... 'yyyy-mm-dd HH:MM'); DateTime_2007 = cellstr(Date

在下面的示例中,我有两年的数据,由data_2007和data_2008表示,它们具有相应的日期数组:

clear all
DateTime_2007 = datestr(datenum('2007-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:...
    datenum('2007-12-31 23:57','yyyy-mm-dd HH:MM'),...
    'yyyy-mm-dd HH:MM');
DateTime_2007 = cellstr(DateTime_2007);

DateTime_2008 = datestr(datenum('2008-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:...
    datenum('2008-12-31 23:57','yyyy-mm-dd HH:MM'),...
    'yyyy-mm-dd HH:MM');
DateTime_2008 = cellstr(DateTime_2008);

data_2007 =  1 + (20-1).*rand(8760,1);
data_2008 = 1 + (20-1).*rand(8784,1);
我想将数据绘制在一个图表上,显示数据在2年内的变化情况,因此基本上是一个超过2年的图表。考虑到我需要沿X轴显示日期,并且可能只给出月份名称(mmm)(而不是yyyy-mm-dd-HH:mm),如何实现这一点

使用。您的日期应仅为datenum:

DateTime_2008 = datenum('2008-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:...
datenum('2008-12-31 23:57','yyyy-mm-dd HH:MM');
你可以这样画:

plot([DateTime_2007 DateTime_2008], [data_2007; data_2008]);
datetick('x');
如果要为记号使用其他格式,请尝试:

datetick('x', 'yyyy-mm');
如果您想自己选择刻度的位置(要实际指定刻度,可能需要使用
set(gca,'XTick',…)
,请参阅):


您是否尝试过使用
datetick
命令标记轴

plot(datenum(DateTime_2007),data_2007)
hold on
plot(datenum(DateTime_2008),data_2008,'g')
datetick('x','mmm')
如果不将日期转换为日期字符串,然后必须将其转换回绘图,则可能会更容易

plot(datenum(DateTime_2007),data_2007)
hold on
plot(datenum(DateTime_2008),data_2008,'g')
datetick('x','mmm')