imagesc() Y Axis Log Scale Not Working (Help!)
Mostrar comentarios más antiguos
I have a matrix (image_spectrogram) which representing a image.
Using the imagesc function, I can shown the image.
eg: imagesc(x,y,log10(image_spectrogram+1));
I am trying to set the y axis to log scale, so I typed:
set(gca,'YScale','log','YDir','normal','YTick',[0.1,100,500,1000,5000]);
However, it turns out that this is a fake log scale.
The YScale did turn into log scale, but the image is absolutely identical to the linear one.
Two images are attached as following.
How to get a real log scale (y axis) image, please help me! This is the linear image:

This is the Y axis log scale image:

They are same except the fake log scale Y axis.
My original code is :
imagesc(x,y,log10(image_spectrogram(1:floor(Fs/2),:)+1));
cmap = colormap('gray');
colormap(flipud(cmap));
caxis(log10([0.9,max(image_spectrogram(:))*0.2]));
set(gca,'YScale','log','YDir','normal','YTick',[0.1,100,500,1000,5000]);
Help!
Respuesta aceptada
Más respuestas (3)
Oliver Woodford
el 17 de Sept. de 2015
0 votos
If you want to avoid pcolor, you can resample the image at the log scale locations, then use imagesc to display that.
1 comentario
Peter Jack
el 6 de Dic. de 2018
can you tell me how we can do that i.e resample existing image cdata at log scale location?
Constantino
el 1 de Nov. de 2018
I cannot get to implement correctly neither of the two solutions given here. I just wanted to make a quick image from a "rows x columns" matrix, where the Y axis must be plotted in log scale. I thought it would be simple, but it seems matlab has so much complexity that my approach is not working.
image(My2DMatrix,'CDataMapping','scaled')
works fine. I can change the color scale, axes ranges, and everything through the menus from the created image. However, transforming the image so it displays a log Y axis does nothing to the image. Maybe I need another type of plot? I'm a complete newbe in matlab. Have worked with other languages but it seems matlab is not so easy as other programming environments.
Constantino
el 2 de Nov. de 2018
0 votos
Ok, I solved my problem using contourf, which handles better my type of data
Categorías
Más información sobre White en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!