import pywt import matplotlib.pyplot as plt from scipy.interpolate import griddata def plot_haar_coeffs(data, title, levels=5): """Show dwt coefficients for given data .""" w = pywt.Wavelet('haar') a = data ca = [] cd = [] mode = pywt.Modes.sp1DWT = 1 for i in range(levels): (a, d) = pywt.dwt(a, w, mode) ca.append(a) cd.append(d) fig = plt.figure() ax_main = fig.add_subplot(len(ca) + 1, 1, 1) ax_main.set_title(title) ax_main.plot(data) ax_main.set_xlim(0, len(data) - 1) for i, x in enumerate(ca): ax = fig.add_subplot(len(ca) + 1, 2, 3 + i * 2) ax.plot(x, 'r') ax.set_ylabel("A%d" % (i + 1)) ax.set_xlim(0, len(x) - 1) for i, x in enumerate(cd): ax = fig.add_subplot(len(cd) + 1, 2, 4 + i * 2) ax.plot(x, 'g') ax.set_ylabel("D%d" % (i + 1)) # Scale axes ax.set_xlim(0, len(x) - 1) ax.set_ylim(min(0, 1.4 * min(x)), max(0, 1.4 * max(x))) fig.subplots_adjust(left=0.2, right=1.5, top=1.9, bottom=0.1)