sdr.plot.pdf(rv: scipy.stats.rv_continuous, threshold: float | None = None, annotate: 'p_d' | 'p_fa' | 'p_m' | 'p_c' | None = None, x: NDArray[float64] | None = None, points: int = 1001, p: float = 1e-06, ax: plt.Axes | None = None, **kwargs)

Plots the probability density function (PDF) of a statistical distribution.

Parameters:
rv: scipy.stats.rv_continuous

The statistical distribution.

threshold: float | None = None

The detection threshold \(\gamma\).

annotate: 'p_d' | 'p_fa' | 'p_m' | 'p_c' | None = None

Indicates whether to shade and annotate the plot with the probability of detection \(P_d\), false alarm \(P_{fa}\), missed detection \(P_m\), or correct rejection \(P_c\).

x: NDArray[float64] | None = None

The x-axis values to use for the plot. If not provided, it will be generated automatically.

points: int = 1001

The number of points to use for the x-axis.

p: float = 1e-06

The probability of the tail to plot. The smaller the value, the longer the x-axis.

ax: plt.Axes | None = None

The axis to plot on. If None, the current axis is used.

**kwargs

Additional keyword arguments to pass to matplotlib.pyplot.plot().

Example

In [1]: rv = scipy.stats.rayleigh(scale=1); \
   ...: threshold = 2
   ...: 

In [2]: plt.figure(); \
   ...: sdr.plot.pdf(rv, threshold=threshold, annotate="p_d");
   ...: 
../../_images/sdr_plot_pdf_1.svg