gui, image plot, ticks, y axis

조회 수: 14 (최근 30일)
Jason
Jason 2014년 9월 16일
댓글: Volodymyr Zenin 2020년 8월 4일
I am plotting an array "stdmap" of data by using
imagesc(stdmap,[100,500])
As you can see in image below, I want to limit the x & y marks to whole numbers, i.e. 1,2,3 in the y axis.
This number will change, but I just dont want the intermediate values as the y asxis represents line number so i just want integers.
Is it also possible to add the actual values onto the plot too?
Thanks

답변 (1개)

Geoff Hayes
Geoff Hayes 2014년 9월 16일
Jason - you can change the y-ticks on the axes as follows
% create the image
h = imagesc(stdmap,[100,500]);
% get the handle to the parent axes
hAxes = get(h,'Parent');
% create the new y-ticks at the integer positions from 1 to
% the maximum integer
newYTicks = 1:floor(max(get(hAxes,'YTick')));
% set the ticks and the labels for the y-axis
set(hAxes,'YTick',newYTicks,'YTickLabel',num2str(newYTicks))
We use the handle of the image, h, to get the handle to the parent axes, hAxes. Then we obtain the positions of the YTick tick marks (along the y-axis) and convert to newYTicks which will just be the integers from 1 to the (integer once floored) maximum tick position. Then we set the tick positions and labels.
As for adding the actual values on to the plot, do you mean into the figure itself at each "square"? I think you would have to use text objects for that.
  댓글 수: 4
Jason
Jason 2014년 9월 18일
Thanks Geoff, that's fixed the issue, thanks again for your help. Jason
Volodymyr Zenin
Volodymyr Zenin 2020년 8월 4일
you can also try to let Matlab itself label your ticks, i.e.,
set(AX(1),'YTick',newYTicks)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Axis Labels에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by