描述:
在代码中使用了两行注释,如下
取消注释后,画图发生了变化
问题:
后面画图使用的列表与注释的两行无任何关系,但是取消注释对后续的画图结果有影响
如下为源代码:
from read_txt_file import read_txt_file
import matplotlib.pyplot as plt
import numpy as np
# 解决画图时无法显示中文的问题
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 使用微软雅黑字体
plt.rcParams['axes.unicode_minus'] = False # 处理负号显示异常
delay_time = []
sum_spec = []
# 每个光谱求和,按时间画图
for i in range(0, 5000): # 0~4999
file_name = f"./neat/{i}.txt"
try: # 读取文件内容
wavelength_, intensity_ = read_txt_file(file_name)
delay_time.append(i)
sum_spec.append(sum(intensity_))
except FileNotFoundError:
print(f"File '{file_name}' not found.")
except IOError as e:
print(f"Error reading file '{file_name}': {e}")
# FFT
num_samples = len(delay_time)
Rs = 1 / 133 # unit: e18 Hz
fft_result = np.fft.fft(sum_spec)
fft_result[0] = 0
freq = np.fft.fftfreq(num_samples, d=1 / Rs)
slice_sig = fft_result[234:270]
slice_freq = freq[234:270]
c = 299792458.0
waveL = slice_freq
# for i in range(len(waveL)):
# waveL[i] = c / slice_freq[i]
plt.subplot(2, 1, 1)
plt.plot(freq, np.abs(fft_result))
plt.title('Frequency Spectrum')
plt.xlabel('Frequency (EHz)')
plt.ylabel('Magnitude')
plt.grid(True)
plt.show()