# How to change the scale of the x-axis & y-axis?

1,126 views (last 30 days)
Sultan Al-Hammadi on 22 Oct 2018
Answered: Aron Magesh on 5 Jul 2020
I have written a code which used to plot the spectrogram of a signal. This line was to get the spectrogram:
[s,f2,t] = spectrogram(xc,win,noverlap,FFT_LENGTH,fs,'yaxis');
Then I used imagesc to plot the spectrogram: imagesc(t,f2,20*log10(abs(s)));
Everything is working fine except I want to decrease the scale of the x-axis & y-axis. How can I do that?
Edited: Adam on 22 Oct 2018
Decrease the scale from what to what?
doc xlim
doc ylim
change the axis limits, but I don't know what you mean by 'change the scale', it is very ambiguous. Do you mean change between linear and logarithmic?

Aron Magesh on 5 Jul 2020
For changing the axis scale use the following function:
for example low=10,high=100 and interval=5
set(gca,'xtick', 10:5:100)

Kevin Chng on 22 Oct 2018
you may use xlimit() or ylimit() to rescale your plot.
Sultan Al-Hammadi on 23 Oct 2018
What I was trying to say is that how to change the scale for the thing circled by a red line [looks like steps] to make it looks like a straight line (not like steps)? (please see the attached spectrogram)
Kevin Chng on 24 Oct 2018
Try
h.figure
w = h.Position;
h.Position = [w(1) w(2) w(3)*1.5 w(4)]
Will it work for you?

Edited: Adam on 23 Oct 2018
doc interp2
is likely what you need if you want finer resolution to get rid of step-like features, but how was anyone to interpret that from you just keep repeating 'change the scale'? You need to be a lot more precise to get a faster answer.
Or since you are creating a spectrogram you could just use a finer discretisation of the frequencies and/or the times used to compute it.