函数plt.matshow(coef)不使用时间和频率数组来创建轴(但它创建基于索引的示例轴)。在
我建议使用plt.pcolormesh(t, freqs, coef),因此时间和频率用于轴。然后你可以玩比例-比方说,把频率轴放在对数刻度上-然后产生这样的东西:
以下是生成图像的代码,源于您的示例:import pywt
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import chirp
# Define signal
fs = 128.0
sampling_period = 1 / fs
t = np.linspace(0, 2, 2 * fs)
x = chirp(t, 10, 2, 40, 'quadratic')
# Calculate continuous wavelet transform
coef, freqs = pywt.cwt(x, np.arange(1, 50), 'morl',
sampling_period=sampling_period)
# Show w.r.t. time and frequency
plt.figure(figsize=(5, 2))
plt.pcolor(t, freqs, coef)
# Set yscale, ylim and labels
plt.yscale('log')
plt.ylim([1, 100])
plt.ylabel('Frequency (Hz)')
plt.xlabel('Time (sec)')
plt.savefig('egg.png', dpi=150)