0

在以下示例中,我有两年的数据,用 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),如何实现这一点。

4

2 回答 2

1

使用日期记号。您的日期应该只是 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('x', 'keepticks');
于 2012-04-11T09:08:03.903 回答
1

您是否尝试过datetick标记轴的命令?

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

如果您没有将日期转换为日期字符串,则可能会更容易,然后必须将它们转换回来进行绘图。

于 2012-04-11T09:09:00.907 回答