気温と湿度のデータを用いて高速フーリエ変換しようとしています。
ですが表示されるグラフが何か違う気がして、どこで間違っているのか指摘していただきたいです。
使用しているデータセットの中身。
過去2年分のデータ。1週間ごとに記録されているので104個のデータ(1年=52週)がある。1列目が気温、2列目が湿度。
array([(19. , 40.), (18.8, 44.), (19. , 42.), (19.2, 44.), (22.3, 41.), (20.7, 45.), (20.8, 40.), (20.6, 45.), (19.5, 41.), (20.5, 40.), (21.1, 39.), (20.8, 43.), (20.3, 41.), (21.9, 45.), (22.2, 42.), (21.6, 41.), (22.5, 45.), (23.3, 48.), (21.1, 42.), (23.2, 44.), (22.4, 42.), (24.2, 44.), (25.8, 41.), (24.8, 40.), (28.2, 40.), (28.3, 41.), (27.9, 39.), (27.4, 43.), (28.6, 44.), (29. , 41.), (29.4, 45.), (30. , 37.), (30.9, 38.), (27.6, 47.), (27.6, 47.), (27.7, 43.), (26. , 37.), (27.5, 39.), (24.9, 42.), (22.8, 36.), (23.3, 40.), (23. , 44.), (23.6, 41.), (21.6, 44.), (22.1, 41.), (20.7, 40.), (20.1, 44.), (19.3, 38.), (17.3, 39.), (20.3, 38.), (20.3, 38.), (21.2, 37.), (19. , 40.), (18.8, 44.), (18.7, 40.), (20.1, 43.), (20.1, 37.), (22.8, 45.), (18.5, 42.), (19.4, 39.), (20.3, 43.), (20.1, 41.), (22.3, 36.), (20.7, 38.), (23. , 41.), (21.6, 41.), (20.6, 40.), (21.8, 39.), (21.2, 36.), (22. , 40.), (23.9, 40.), (22.4, 42.), (23.4, 43.), (27.3, 40.), (25.8, 41.), (24.8, 40.), (28.2, 40.), (28.3, 41.), (28.5, 42.), (28.8, 40.), (29.9, 37.), (28.8, 36.), (30.4, 37.), (30.4, 39.), (28.6, 35.), (27. , 34.), (25.2, 41.), (24.4, 41.), (26.7, 39.), (25.1, 51.), (25.2, 45.), (23.7, 41.), (21.4, 42.), (21.8, 45.), (22.8, 44.), (22. , 40.), (21.5, 42.), (23.4, 46.), (21.3, 39.), (20.8, 43.), (20.6, 41.), (20.3, 42.), (21.2, 39.), (22.7, 39.)], dtype=[('temperature', '<f8'), ('humidity', '<f8')])
ソースコード
import numpy as np import matplotlib.pyplot as plt pitch = np.genfromtxt('ファイル名', names = ['temperature', 'humidity']) y = np.fft.fft(pitch['temperature']) N = len(y) dt = 0.00000001 t = np.arange(0, N*dt, dt) freq = np.fft.fftfreq(N, dt) plt.plot(freq) plt.xlabel('Number of data') plt.ylabel('Output') plt.title('FFT of temperature')
補足
yymmtさんのおっしゃるとおりにplt.plot(freq, y)
でプロットしてみたところ、になりました。ですがまだ授業で習った様な形ではないのでyが間違っているのでしょうか?質問続きですみません。
回答1件
あなたの回答
tips
プレビュー