Matplotlib is a library in Python and it is numerical – mathematical extension for NumPy library. The Axes Class contains most of the figure elements: Axis, Tick, Line2D, Text, Polygon, etc., and sets the coordinate system. And the instances of Axes supports callbacks through a callbacks attribute.
matplotlib.axes.Axes.csd() Function
The Axes.csd() function in axes module of matplotlib library is used to plot the cross-spectral density.
Syntax: Axes.csd(self, x, y, NFFT=None, Fs=None, Fc=None, detrend=None, window=None, noverlap=None, pad_to=None, sides=None, scale_by_freq=None, return_line=None, *, data=None, **kwargs)
Parameters: This method accept the following parameters that are described below:
- x, y: These parameter are the sequence of data.
- Fs : This parameter is a scalar. Its default value is 2.
- window: This parameter take a data segment as an argument and return the windowed version of the segment. Its default value is window_hanning()
- sides: This parameter specifies which sides of the spectrum to return. This can have following values : ‘default’, ‘onesided’ and ‘twosided’.
- pad_to : This parameter contains the integer value to which the data segment is padded.
- NFFT : This parameter contains the number of data points used in each block for the FFT.
- detrend : This parameter contains the function applied to each segment before fft-ing, designed to remove the mean or linear trend {‘none’, ‘mean’, ‘linear’}.
- scale_by_freq : This parameter is allows for integration over the returned frequency values.
- noverlap : This parameter is the number of points of overlap between blocks.
- Fc : This parameter is the center frequency of x.
- return_line : This parameter include the line object plotted in the returned values.
Returns: This returns the following:
- Pxy:This returns the values for the cross spectrum P_{xy} before scaling.
- freqs :This returns the frequencies for the elements in Pxy.
- line :This returns the line created by this function.
The resultant is (Pxy, freqs, line)
Below examples illustrate the matplotlib.axes.Axes.csd() function in matplotlib.axes:
Example-1:
| # Implementation of matplotlib function importnumpy as np importmatplotlib.pyplot as plt  dt =0.01t =np.arange(0, 30, dt) nse1 =np.random.randn(len(t)) nse2 =np.random.randn(len(t))  s1 =1.5*np.sin(2*np.pi *10*t) +nse1 s2 =np.cos(np.pi *t) +nse2  fig, ax1 =plt.subplots() ax1.csd(s1, s2**2, 128, 1./dt) ax1.set_xlabel('Frequency') ax1.set_ylabel('CSD(db)')  ax1.set_title('matplotlib.axes.Axes.csd() Example') plt.show()  | 
Output:
Example-2:
| # Implementation of matplotlib function importnumpy as np importmatplotlib.pyplot as plt   dt =0.01t =np.arange(0, 30, dt) nse1 =np.random.randn(len(t)) nse2 =np.random.randn(len(t)) r =np.exp(-t /0.05)   cnse1 =np.convolve(nse1, r, mode ='same')*dt cnse2 =np.convolve(nse2, r, mode ='same')*dt   s1 =1.5*np.sin(2*np.pi *10*t) +cnse1 s2 =np.cos(np.pi *t) +cnse2 +np.sin(2*np.pi *10*t)   fig, [ax1, ax2] =plt.subplots(2, 1) ax1.plot(t, s1, t, s2) ax1.set_xlim(0, 5) ax1.set_ylabel('s1 and s2') ax1.grid(True)   ax2.csd(s1, s2, 256, 1./dt) ax2.set_ylabel('CSD(db)') ax2.set_xlabel('Frequency')   ax1.set_title('matplotlib.axes.Axes.csd() Example') plt.show()  | 
Output:

 
                                    








