MATLAB: How to increase xticks to axis

plotxlabelxticks

Hi, I have tried different solutions online but nothing works. I have a row vector of dimension (1×19) where each value is for years 1995 to 2013. With below script, I get ticks for every other year, but I want it for each year. How can I do this?
y_data=rand(1,19);
x = linspace(1995,2013,19);
plot(x,y_data)
xticks(1995:1:2013);
xticklabels({'1995' '1996' '1997' '1998' '1999' '2000' '2001' '2002' '2003' '2004' '2005' '2006' '2007' '2008' '2009' '2010' '2011' '2012' '2013'})
xlim([1995 2013]);

Best Answer

  • Your code should already by providing annual ticks. Nevertheless, here are some improvements.
    y_data=rand(1,19);
    x = 1995:1:2013;
    plot(x,y_data)
    xticks(x);
    % xticklabels({'1995' '1996' '1997' '1998' '1999' '2000' '2001' '2002' '2003' '2004' '2005' '2006' '2007' '2008' '2009' '2010' '2011' '2012' '2013'})
    % Remove the line above!
    xlim(x([1,end]));
    Alternatively, you could use a datetime axis by replacing 1 line above.
    % Replace this
    x = 1995:1:2013;
    % with this
    x = years(1995:1:2013);