Seite 1 von 1

Ändern von Achsenwerten mit imshow und Anzeigen von Datenpunkten

Verfasst: Freitag 29. Juli 2022, 18:34
von pyhill00
Ich möchte die Achsen ändern, damit ich die Werte der x- und y-Komponenten der beiden Frequenzen sehen kann. Ich habe zwei Codes: der erste zeigt die richtigen Daten, aber die Achsen sind falsch, der zweite zeigt die richtigen Achsen, aber meine zwei Datenpunkte werden nicht angezeigt.

Erster Code:

Code: Alles auswählen

    from scipy.fft import fft2, fftshift
    import numpy as np
    import matplotlib.pyplot as plt
    from skimage.filters import window
    from scipy.fftpack import fftfreq


    k = np.linspace(0,4.76*10,2400)
    kx,ky = np.meshgrid(k, k)
    x1 = 0.3
    y1 = 0.4
    x2 = 0.3
    y2 = 1

    z = 0.05*np.cos(2*np.pi*kx*x1 + 2*np.pi*ky*y1) + 0.05*np.cos(2*np.pi*kx*x2 + 2*np.pi*ky*y2)

    wz = z * window('hann', z.shape)


    zf = np.abs(fftshift(fft2(wz)))[1200:, 1200:]
    plt.figure(1)
    plt.axis([0,100, 0,100])

    plt.imshow(zf)
    plt.show()
Und das Ergebnis

https://imgur.com/a/S4uVu8k

Zweiter Code:

Code: Alles auswählen


    from scipy.fft import fft2, fftshift
    import numpy as np
    import matplotlib.pyplot as plt
    from skimage.filters import window
    from scipy.fftpack import fftfreq


    k = np.linspace(0,4.76*10,2400)
    kx,ky = np.meshgrid(k, k)
    x1 = 0.3
    y1 = 0.4
    x2 = 0.3
    y2 = 1

    z = 0.05*np.cos(2*np.pi*kx*x1 + 2*np.pi*ky*y1) + 0.05*np.cos(2*np.pi*kx*x2 + 2*np.pi*ky*y2)

    wz = z * window('hann', z.shape)


    zf = np.abs(fftshift(fft2(wz)))[1200:, 1200:]
    fig, ax = plt.subplots()
    ax.set(xlim=(0, 2), ylim=(0, 2))

    f = fftfreq(len(k), np.diff(k)[0])
    ax.imshow(zf,extent=[0,f[:k.size//2][-1], 0 , f[:k.size//2][-1]])
    plt.show()
Ergebnis:

https://imgur.com/a/Vk29DCs

Re: Ändern von Achsenwerten mit imshow und Anzeigen von Datenpunkten

Verfasst: Freitag 29. Juli 2022, 19:51
von pyhill00
Ich hab's: ax.imshow(zf, origin='lower', extent=[0,f[:k.size//2][-1], 0 , f[:k.size//2][-1]])

origin war nicht unten -_-