how to label x and y ticks?

1 view (last 30 days)
Minka Califf
Minka Califf on 18 May 2018
Edited: Minka Califf on 19 May 2018
I am trying to label my y axes to go from 1 to 50 by tens, and my x axes to have only 2 ticks labelled 'Morning' and 'Final'. I tried using set(gca,'YTick',1:10:50) but it's not working. Not sure what I'm doing wrong.
figure;
%%first plot
ax2 = subplot(1,2,1);
axis square;
ylabel('Odds');
%%second plot
subplot(1,2,2);
axis square;
% white background
set(gcf,'color','w');

Accepted Answer

dpb
dpb on 18 May 2018
You don't show the code to generate the plot, but
ylim(ax1,[0 50])
ax1.Ytick=[1 10:50])
will work for the y-axes; of course the data itself will have to be in that range or it won't show up--such a mismatch is probably why what you've tried doesn't appear to work as you expect.
For the x-axes, you'll have to plot against two point values or use categorical variables
x=categorical({'Morning','Final'});
x=repmat(x,5,1);
y=(randi(50,5,2));
plot(x,y,'o')
ylim([0 50])
hAx=gca;
hAx.YTick=[1 10:10:50];
yields
for first crude approximation.
  2 Comments
Minka Califf
Minka Califf on 18 May 2018
works great! Thanks!
dpb
dpb on 18 May 2018
Edited: dpb on 19 May 2018
Oh, to keep ML from ordering the categorical variables by alphabetic order, use
x=categorical({'Morning','Final'},{'Morning','Final'});
to define the valueset order.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!