imagesc() Y Axis Log Scale Not Working (Help!)
Mostra commenti meno recenti
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!
Risposta accettata
Più risposte (3)
Oliver Woodford
il 17 Set 2015
0 voti
If you want to avoid pcolor, you can resample the image at the log scale locations, then use imagesc to display that.
1 Commento
Peter Jack
il 6 Dic 2018
can you tell me how we can do that i.e resample existing image cdata at log scale location?
Constantino
il 1 Nov 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
il 2 Nov 2018
0 voti
Ok, I solved my problem using contourf, which handles better my type of data
Categorie
Scopri di più su Graphics Performance in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!