Set specific date ticks
    9 views (last 30 days)
  
       Show older comments
    
Hi trying to set specific date ticks. I don't understand why the following code does not work
figure()
hold on
box on
plot(date1,series1,'k')
plot(date1,series2,'r--')
xlabel('Date')
ylabel('Price')
DateString = {'06/30/2010';'11/30/2010'};
datenum(DateString);
set(gca, 'XTick', datenum(DateString))
dateFormat = 1;
datetick('x', dateFormat)
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 13 Oct 2017
        datetick('x', dateFormat, 'keepticks')
5 Comments
  Walter Roberson
      
      
 on 21 Oct 2017
				Your date1 appears to be datetime objects, and you appear to be using R2016b or later. In that case you do not use datetick.
figure()
hold on
box on
plot(date1, series1, 'k')
plot(date1, series2, 'r--')
xlabel('Date')
ylabel('Price')
DateString = {'06/30/2010';'11/30/2010'};
ticlocs = datetime(DateString); %R2014b or later
ticlocs.Format = 'dd-MMM-yyyy';
set(gca, 'XTick', ticklocs);    %R2016b or later
More Answers (2)
  Peter Perkins
    
 on 13 Oct 2017
        
      Edited: Walter Roberson
      
      
 on 13 Oct 2017
  
      If you have access to R2016b or later, you will probably be much happier using datetime rather than datenum/datestr, including for plotting:
d = datetime(2015,1,1:500);
x1 = randn(size(d));
plot(d,x1)
ax = gca;
ax.XAxis.TickValues = datetime(2015,1,1)+calquarters(0:6);
ax.XAxis.TickLabelFormat = 'QQQ-yyyy';

3 Comments
  Walter Roberson
      
      
 on 13 Oct 2017
				Yup. For example,
ax.XAxis.TickValues = datetime(2015,1,1)+days([18 143 207 258]);
ax.XAxis.TickLabelFormat = 'MMM dd';
or
ax.XAxis.TickValues = datetime(2015,[1;5;11;14], [17;5;30;19]);
ax.XAxis.TickLabelFormat = 'yy/M/d';
  Med Aymane Ahajjam
      
 on 14 May 2019
        In order for the TickLabelFormat to work, at least in my case, I had to specify:
ax.XTickLabelMode = 'manual';
ax.XAxis.TickLabelFormat = 'HH:mm:ss';
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

