Just as an illustration, I'm looking for a nice way to plot something like
this:
http://labrosa.ee.columbia.edu/matlab/sgram/

I don't necessarily need a weighting matrix to convert the Pxx array, which
is what Dan Ellis' code does; I just need to visualize the spectrogram on a
logarithmic axis.

Is there any built-in way to do this?

I'd just like to be able to call specgram(), and then call something like
yscale('log', basey=10), to change the y-axis to be logarithmic, stretching
or compressing different areas of the image appropriately. The equivalent
code would work in MATLAB. However, this doesn't seem to work with
matplotlib (I just get an empty figure).
Similarly, I couldn't get matplotlib.pyplot.semilogy() to work; I get the
warning: "Images are not supported on non-linear axes."

Does anyone have any ideas?
Thanks!

--David Ho


On Thu, Apr 15, 2010 at 12:27 PM, David Ho <its...@ucla.edu> wrote:

> Hi all!
>
> I have a quick newbie question.
> matplotlib's specgram() by default plots a spectrogram with a linear y-axis
> (frequency).
> However, for many applications, it's better to look at a log-frequency
> spectrogram.
>
> Is there an easy way to plot a spectrogram using a logarithmic frequency
> axis?
>
> Thanks for your help!
>
> --David Ho
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to