查看变星的大小 - 数据集来自这里:
https://dogwood.physics.mcmaster.ca/Cepheid/URL/MW/BD-10d4669.html
幅度图:
import pandas as pd
from matplotlib import pyplot as plt
from scipy import signal
import numpy as np
plt.rcParams["figure.figsize"] = (16, 9)
df = pd.read_table('BD-10d4669.p.1',
sep=' ',
engine='python',
names=['time', 'mag'])
df.plot(x='time', y='mag');
很明显,时间线上存在差距。
但是我怎么知道signal.spectrogram()
差距存在呢?在我看来,该函数假设时间序列永远不会有任何数据间隙。
这是未考虑间隙的朴素频谱图:
sig = np.array(df['mag'].tolist())
nseg = 20
f, t, Sxx = signal.spectrogram(sig, 1, nperseg=nseg, noverlap=nseg-1)
plt.pcolormesh(t, f, np.log10(Sxx), shading='auto');
我希望频谱图的时间线至少部分匹配情节的时间线。
我知道由于存储桶大小(nperseg)可能存在问题,我也不知道如何处理。