在下面的示例中,我有两年的数据,由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),如何实现这一点。
答案 0 :(得分:1)
使用datetick。您的日期应该是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', ...)
,请参阅axes properties):
datetick('x', 'keepticks');
答案 1 :(得分:1)
您是否尝试过datetick
命令来标记轴?
plot(datenum(DateTime_2007),data_2007)
hold on
plot(datenum(DateTime_2008),data_2008,'g')
datetick('x','mmm')
如果你没有将日期转换为日期字符串,然后必须将它们转换回来进行绘图,这可能会更容易。