MATLAB:如何使用dateticks更改x轴刻度

时间:2018-01-27 17:43:23

标签: matlab

我试图描绘失业率随着时间的推移,但是年数以10年的频率显示。我希望每5年有一个x轴刻度,但似乎无法管理这个因为xticks不在dateformat中

如果你想看看,下面是相关的代码。

clear;

X=xlsread('UNRATE.xls');%Import Data 
s_year=1950;
e_year=2015;
X=X((s_year-1948)*12+1:(e_year-1948)*12+12);
startdate = datenum('01-1950','mm-yyyy');
enddate = datenum('12-2015','mm-yyyy'); 
dt = linspace(startdate,enddate,792);%create numeric dates 
plot(dt,X);%plot data against dates 
datetick('x','yyyy');%format dates in display
recessionplot; 
title('Unemployment Rate in the US over time');
xlabel('Year'); % x-axis label
ylabel('Unemployment Rate'); % y-axis label

1 个答案:

答案 0 :(得分:3)

使用时间序列时,您可以做的最好的事情是手动修改轴的XTick属性,以便在执行绘图后满足您的需要。例如:

%...

plot(dt,X);
set(gca,'XTick',datenum(1950:5:2015,1,1));

%...

工作示例:

clear;

s_year=1950;
e_year=2015;
X= rand(792,1);
startdate = datenum('01-1950','mm-yyyy');
enddate = datenum('12-2015','mm-yyyy'); 
dt = linspace(startdate,enddate,792);

xticks = datenum(1950:5:2015,1,1);
xlabels = cellstr(num2str(year(xticks.')));

figure();
plot(dt,X);
set(gca,'XTick',xticks);
set(gca,'XTickLabel',xlabels);

输出:

Output 1

没有刻度调整的原始图:

Output 2