How can I start the y axis of my plot with 1 but keep increments at 5, 10, 15 and so on?
6 views (last 30 days)
Show older comments
I want the y axis of my plot to start with 1 instead of 0. If I do that with
set(gca,'YTickLabel',0:5:n)
it starts with 0, if I do it instead with
set(gca,'YTickLabel',1:5:n)
it starts with 1 but the increment is set at 6, 11 and so on.
I uploaded a picture to show you exactly what I mean:

2 Comments
Answers (2)
Adam
on 15 Aug 2017
Edited: Adam
on 15 Aug 2017
ylim( hAxes, [1 n] );
hAxes.YTick = [ 1 hAxes.YTick ];
should achieve this, though if your plot is dynamic with a changing range it gets more messy when you start manually changing ticks because ticks will no longer update automatically with the range.
I have debated whether to do similar myself often. Sometimes I do, sometimes I don't, especially with images where I want to have nice tick values, but also include the first and last tick explicitly without it giving me silly intermediate ticks. Often it looks a bit odd though.
Star Strider
on 15 Aug 2017
Without your data, writing specific code to do what you want can be difficult.
Try this:
x = 0:100; % Create Data
y = bsxfun(@plus, rand(15,101), (1:15)'); % Create Data
figure(1)
plot(x, y)
yt = get(gca, 'YTick');
set(gca, 'YTick',[0 5:5:max(yt)], 'YTickLabel',[1 5:5:max(yt)])
0 Comments
See Also
Categories
Find more on Startup and Shutdown 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!