2424@savefig
2525@style_plot
2626@check_dependency (plt , 'matplotlib' )
27- def plot_spectra (freqs , power_spectra , log_freqs = False , log_powers = False ,
27+ def plot_spectra (freqs , power_spectra , log_freqs = False , log_powers = False , freq_range = None ,
2828 colors = None , labels = None , ax = None , ** plot_kwargs ):
2929 """Plot one or multiple power spectra.
3030
@@ -38,6 +38,9 @@ def plot_spectra(freqs, power_spectra, log_freqs=False, log_powers=False,
3838 Whether to plot the frequency axis in log spacing.
3939 log_powers : bool, optional, default: False
4040 Whether to plot the power axis in log spacing.
41+ freq_range : list of [float, float], optional
42+ Frequency range to plot.
43+ Should be provided in linear space, regardless of value of `log_freqs`.
4144 colors : list of str, optional, default: None
4245 Line colors of the spectra.
4346 labels : list of str, optional, default: None
@@ -53,6 +56,10 @@ def plot_spectra(freqs, power_spectra, log_freqs=False, log_powers=False,
5356 # Create the plot
5457 plot_kwargs = check_plot_kwargs (plot_kwargs , {'linewidth' : 2.0 })
5558
59+ # Check for frequency range input, and log if x-axis is in log space
60+ if freq_range is not None :
61+ freq_range = np .log10 (freq_range ) if log_freqs else freq_range
62+
5663 # Make inputs iterable if need to be passed multiple times to plot each spectrum
5764 plt_powers = np .reshape (power_spectra , (1 , - 1 )) if np .ndim (power_spectra ) == 1 else \
5865 power_spectra
@@ -63,7 +70,7 @@ def plot_spectra(freqs, power_spectra, log_freqs=False, log_powers=False,
6370 labels = repeat (labels ) if not isinstance (labels , list ) else cycle (labels )
6471 colors = repeat (colors ) if not isinstance (colors , list ) else cycle (colors )
6572
66- # Plot
73+ # Plot power spectra, looping across all spectra to plot
6774 for freqs , powers , color , label in zip (plt_freqs , plt_powers , colors , labels ):
6875
6976 # Set plot data, logging if requested, and collect color, if absent
@@ -74,6 +81,8 @@ def plot_spectra(freqs, power_spectra, log_freqs=False, log_powers=False,
7481
7582 ax .plot (freqs , powers , label = label , ** plot_kwargs )
7683
84+ ax .set_xlim (freq_range )
85+
7786 style_spectrum_plot (ax , log_freqs , log_powers )
7887
7988
0 commit comments