Clear Filters
Clear Filters

Why is my plot not showing years on the x axis but random numbers and what code do i use to make it years?

3 views (last 30 days)
In the screen shot my plot has got random numbers on the x axis instead of years, what code do i use to change this?
  4 Comments
LM
LM on 27 Oct 2017
Edited: LM on 27 Oct 2017
This is my code.
%plot cumulative return of four trading stratergies
plot(cum_ret_oos)
% Create xlabel
xlabel('Years out sample')
% Create ylabel
ylabel('Cumulative Returns (logs)')
% Create title
title('Cumulative Returns of 4 Trading Stratergies')
% set the y-axis scale to log
set(gca,'Yscale','log')

Sign in to comment.

Accepted Answer

KSSV
KSSV on 27 Oct 2017
It should have got plotted w.r.t to indices....you need to change the x-axis ticks to the years you want. Read about datetick, datenum.
  1 Comment
LM
LM on 27 Oct 2017
Edited: LM on 27 Oct 2017
I have tried both date tick and datenum but both have not given me dates, why not?
%plot cumulative return of four trading stratergies
plot(cum_ret_oos)
startDate = datenum('01-01-2013');
endDate = datenum('30-06-2015');
xData = linspace(startDate,endDate,30);
% Create xlabel
xlabel('Years out sample')
% Create ylabel
ylabel('Cumulative Returns (logs)')
% Create title
title('Cumulative Returns of 4 Trading Stratergies')
% set the x-axis scale to log
set(gca,'Yscale','log')
or using date tick in the second screen shot

Sign in to comment.

More Answers (1)

Steven Lord
Steven Lord on 27 Oct 2017
Here's a small example you can use as a model for your own code.
% Read in some sample data.
% This contains two variables: cdate (year numbers) and pop (population)
load census
% Turn the year numbers into a datetime array
x = datetime(cdate, 1, 1);
% Plot it. Note that the X axis contains year numbers
h = plot(x, pop);
% If you want finer-grained control of the formatting on the axes
% and you're using release R2016a or later, get the axes ruler
ax = ancestor(h, 'axes');
xrule = ax.XAxis;
% The xrule ruler has a number of properties. Let's customize the format.
%
% After running the line below the axes should show the ticks as
% Jan1xxx (1840, 1880, 1920, etc.) because the x vector I created
% contains January 1st for years that are multiples of 10
xrule.TickLabelFormat = 'MMMyyyy';

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!