how to plot the FFT of a list of values

Thomas Jollans tjol at tjol.eu
Mon Dec 7 09:46:47 EST 2020


On 05/12/2020 23:08, Christian Gollwitzer wrote:
> Am 05.12.20 um 18:16 schrieb Boris Dorestand:
>> I have 16 values of the period sequence 1, 2, 4, 8, 1, 2, 4, 8, ...  I
>> compute its fourier transform using
>>
>>>>> from scipy import fft, ifft
>>>>> x = [1,2,4,8,1,2,4,8]
>>>>> fft(x)
>> array([ 30. +0.j,   0. +0.j,  -6.+12.j,   0. +0.j, -10. +0.j, 0. +0.j,
>>          -6.-12.j,   0. +0.j])
>>
>> Now how can I plot these values?  I would like to plot 16 values.  What
>> do I need to do here?  Can you show an example?
>
>
> Usually, for the FFT of real input data, you plot only the magnitude 
> or square of the complex array, and usually on a logscale. So:
>
> import pylab

Don't use pylab.

https://matplotlib.org/api/index.html#module-pylab

Use matplotlib.pyplot directly instead. "plt" is a popular shorthand:

from matplotlib import pyplot as plt

#...

plt.semilogy(...) # or plt.plot, etc.


- Thomas


> import numpy as np
>
> fx = fft(x)
>
> pylab.semilogy(np.abs(fx))
> pylab.show()
>
>
>
>     Christian
>
>
>



More information about the Python-list mailing list