1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Plot the set of 1D demo signals available in `pywt.data.demo_signal`."""
import numpy as np
import matplotlib.pyplot as plt
import pywt
# use 'list' to get a list of all available 1d demo signals
signals = pywt.data.demo_signal('list')
subplots_per_fig = 5
signal_length = 1024
i_fig = 0
n_figures = int(np.ceil(len(signals)/subplots_per_fig))
for i_fig in range(n_figures):
# Select a subset of functions for the current plot
func_subset = signals[
i_fig * subplots_per_fig:(i_fig + 1) * subplots_per_fig]
# create a figure to hold this subset of the functions
fig, axes = plt.subplots(subplots_per_fig, 1)
axes = axes.ravel()
for n, signal in enumerate(func_subset):
if signal in ['Gabor', 'sineoneoverx']:
# user cannot specify a length for these two
x = pywt.data.demo_signal(signal)
else:
x = pywt.data.demo_signal(signal, signal_length)
ax = axes[n]
ax.plot(x.real)
if signal == 'Gabor':
# The Gabor signal is complex-valued
ax.plot(x.imag)
ax.legend(['Gabor (Re)', 'Gabor (Im)'], loc='upper left')
else:
ax.legend([signal, ], loc='upper left')
# omit axes for any unused subplots
for n in range(n + 1, len(axes)):
axes[n].set_axis_off()
plt.show()
|