How do I get MATLAB to automatically account for missing XTick labels?

3 views (last 30 days)
I've run into a scenario where MATLAB won't include the final xtick in some plots. For example, if I use the following code;
Time = [5 10 15 20 22.23];
Alt = [3 9 16 21 23];
plot(Time, Alt);
title('Altitude Vs Time');
set(gca, 'XLim', [0 max(Time)]);
xlabel('TALO (Sec)');
ylabel('Alt (Miles)');
I get a plot of altitudes vs time, where the desired x-axis tick values begin with 0, end with 20, at 5 second intervals. What I actually need is the same plot with X-axis ticks of 0, 5, 10, 15, 20, and 25.
Is there a way to get get MATLAB to automatically make the a-axis ticks extend past 20 to 25?

Accepted Answer

Star Strider
Star Strider on 30 Sep 2014
Make one small change in the ‘set’ command in your original code, and the upper 'XLim' takes care of itself:
set(gca, 'XLim', [0 5*ceil(max(Time)/5)]);
This will automatically round the upper 'XLim' value to the next multiple of 5. Change the 5 values to something else if you want it to round to another value. Experiment with it.
  4 Comments
Brad
Brad on 30 Sep 2014
Interesting.
I tested this approach on several data sets, some of which had multiples much larger than 5. I held the value of 5 constant, and it still ran like a champ, regardless of the data set. More testing is in order, but I'm a fan. Thanks for taking a look.

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!