How can one remove y-axis ticks on imagesc but keep labels?

While heatmapping my data with imagesc, I want to display on my x-axis ticks and labels, but on y-axis I only want to display labels, no ticks. I know one can remove all ticks by setting the length to zero with set(gca,'TickLength',[0 0]). But how to achieve this on only one axis?

3 Comments

Umm, in my case this removes everything, both ticks and labels. Need labels. :)
oh ok normally it worked but didn‘t test with imagesc()

Sign in to comment.

 Accepted Answer

hAxes.YAxis.TickLength = [0 0];
Following on from what you said in your own question. That seems to work. Assuming you are in a sufficiently recent version of Matlab. You didn't give your version.

1 Comment

Thanks, I shall look into this. I'm on 2018b. Being somewhat a novice to the whole graphics thing I still need to figure where and how exactly does one set all these properties. Given this figure also has double axes (trying to seemingly shift x-ticklabels to appear inbetween tickmarks via an additional invisible axis) ... it all just overwhelmed me for a sec.
Edit: Yup, that will do the trick. A simple example to those who might also need to apply this:
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
ax1=gca;
imagesc(ax1,C);
%yticks([]); %does not work, wipes out labels as well
ax1.YAxis.TickLength = [0 0];

Sign in to comment.

More Answers (0)

Categories

Products

Community Treasure Hunt

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

Start Hunting!