changing ticks position on the graph

Hi,
I have a problem that seems to be easy. I have created a heat map in form of matrix but the scale I want to set from -400 to 400. I was able to change the axes numbers but the ticks are at the centre of each square instead to be in between them. How to do it?
Thank you,
Regards,
Matti

3 Kommentare

Dyuman Joshi
Dyuman Joshi am 28 Mär. 2023
"... but the ticks are at the centre of each square instead to be in between them."
Ticks are where they are supposed to be.
If you move ticks to the edges of squares, they will be skewered and won't be symmetrical.
DGM
DGM am 28 Mär. 2023
Bearbeitet: DGM am 28 Mär. 2023
If the SW element of the heatmap represents data at (-400, -400), then that's where they're supposed to be in order to communicate that relationship.
If that element represents data at (-440, -440), then you might want to fix your x,y data so that it actually corresponds.
Wade
Wade am 29 Mär. 2023
thank you for your advice!
BW,
Matti

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Bjorn Gustavsson
Bjorn Gustavsson am 29 Mär. 2023

0 Stimmen

If you have coordinates for the edges of the cdata-elements then you can either adjust things manually to get what you want:
dx = 80;
dy = 80;
heatmap(x+dx/2,y+dy/2,cdata)
set(gca,'xtick',x,'ytick',y)
Or perhaps use pcolor instead of heatmap:
dx = 80;
dy = 80;
pcolor([x(:)',x(end)+dx],[y(:),y(end)+dy],cdata([1:end,end],[1:end,end])),shading flat
That should be rather close, I hope. This centre-of-pixel vs edge-of-pixel is a problem that will always persist and never have a solution that satisfies every user in all cases - we just have to learn to work around the given behaviours to get the output that corresponds to our use-cases.
HTH

Kategorien

Mehr zu Color and Styling finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2023a

Gefragt:

am 28 Mär. 2023

Kommentiert:

am 29 Mär. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by