我有以下代码用于生成以一年中的日期延长两年的数据图:
time = datenum('2008-04-17 02:00'):datenum('2009-11-24 12:27');
dateV = datevec(time);
for i = 1:length(time);
DOY(i) = time(i) - datenum(dateV(i,1),0,0);
end
data = rand(length(time),1);
plot(time,data);
set(gca,'XTick',floor(time(1:50:end))','XTickLabel',floor(DOY(1:50:end)))
有人可以建议一种方法来确保 xaxis 上的刻度适用于 10 的倍数,即 110、160 等。
添加部分:
DateTime=datestr(datenum('2007-01-01 00:00','yyyy-mm-dd HH:MM'):1/24:...
datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM'),...
'yyyy-mm-dd HH:MM');
time = datenum(DateTime,'yyyy-mm-dd HH:MM');
dateV = datevec(time);
for i = 1:length(time);
DOY(i) = time(i) - datenum(dateV(i,1),0,0);
end
data = rand(length(time),1);
plot(time,data);
mydays = ~mod(floor(DOY),40); %true for days that are multiples of 10
set(gca,'XTick',floor(time(mydays))','XTickLabel',floor(DOY(mydays)))
Error using set
Values must be monotonically increasing
这可以通过移除地板来解决,即
set(gca,'XTick',time(mydays),'XTickLabel',floor(DOY(mydays)))
但它会生成粗体标签,这是为什么呢?