MATLAB: Plot data instead of number on the xaxis

plot dataxaxis

Hi, I have the following problem: I would like to plot two time series in the same graph which is working fine, but I would like to have displayed the data (here the respective vector is also called date) in a format such as: 01/01/2010 The plot should show the first day of each months so 01/01/2001 01/02/2001 and so on
the code I am using at the moment ist the following one:
filename = 'SPXvsVIX.xlsx';
sheet=2;%3
xlRange='C7:C3402';
date=xlsread(filename, sheet, xlRange);
xlRange='D7:D3402';
SPX=xlsread(filename, sheet, xlRange);
xlRange='I7:I3402';
VIX=xlsread(filename, sheet, xlRange);
dateMatlab=date+693960;
dataSet=[dateMatlab,SPX,VIX];
%enter period you will look at
%start date:
DateString='05-Aug-2002';
%DateString='01-Jan-2001';
StartDate=datenum(DateString);
%end date
DateString='30-Jan-2003';
%DateString='31-Dec-2001'
EndDate=datenum(DateString);
%returns a data matrix consisting only of those datas which are between
%start and end date
dataSet = dataSet(dataSet(:,1)>=StartDate & dataSet(:,1)<=EndDate, :) ;
dates=datenum(dataSet(:,1));
%SPX
SPX=dataSet(:,2);
%VIX
VIX=dataSet(:,3);
plotyy(dates,SPX,dates,VIX);

Best Answer

You need to assign date string values to the axes' property, XTickLabel. On-line help: For example, the statement:
set( gca, 'XTickLabel', {'One';'Two';'Three';'Four'} )
The width of the date strings might become a problem. The property XTick controls number and position of the xtick labels.
.
Run this example
sdn = [ 1 : 6 ] + 735370;
date_strings = datestr( sdn, 'dd-mmm-yyyy' );
plot( [1:6] )
axh = gca;
set( axh, 'XTickLabel', date_strings )