drippy

drippy — EDA plotting library following NIST/SEMATECH principles.

Submodules

Classes

EDAData

Validated data container for EDA analysis.

Functions

block_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a block plot of y vs treatment, grouped by block.

star_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a star (radar) plot of multivariate data.

youden_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a Youden plot comparing two labs or measurement methods.

contour_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a contour plot of y over the 2D factor space.

doe_mean_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates mean plots of y grouped by each factor's levels.

doe_scatter_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates scatter plots of y vs each factor.

doe_sd_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates standard deviation plots of y by each factor's levels.

bihistogram(→ tuple[matplotlib.figure.Figure, ...)

Creates side-by-side histograms for exactly 2 factor levels.

box_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a box plot of y grouped by factor levels in x.

mean_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a mean plot of y grouped by factor levels in x.

qq_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a quantile-quantile plot comparing 2 factor level distributions.

scatter_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a scatter plot of y vs x.

sd_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a standard deviation plot of y grouped by factor levels in x.

linear_correlation_plot(...)

Plots Pearson correlation coefficient for rolling windows of data.

linear_intercept_plot(...)

Plots OLS regression intercept for rolling windows of data.

linear_residual_sd_plot(...)

Plots residual standard deviation for rolling windows of data.

linear_slope_plot(→ tuple[matplotlib.figure.Figure, ...)

Plots OLS regression slope for rolling windows of data.

six_plot(→ tuple[matplotlib.figure.Figure, numpy.ndarray])

Creates a 2x3 composite regression diagnostic plot.

autocorrelation_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates autocorrelation plot with confidence intervals.

complex_demodulation_amplitude_plot(...)

Creates instantaneous amplitude plot via Hilbert transform.

complex_demodulation_phase_plot(...)

Creates instantaneous phase plot via Hilbert transform with linear fit.

spectral_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a Lomb-Scargle periodogram.

bootstrap_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a bootstrap distribution plot.

box_cox_linearity_plot(, n, matplotlib.axes.Axes])

Creates a Box-Cox linearity plot.

box_cox_normality_plot(...)

Creates a Box-Cox normality plot (2x2 grid).

four_plot(→ tuple[matplotlib.figure.Figure, numpy.ndarray])

Creates a 4-plot (run sequence, lag, histogram, normal probability).

histogram(→ tuple[matplotlib.figure.Figure, ...)

Creates a histogram of the data.

lag_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a lag plot of the data.

normal_probability_plot(...)

Creates a normal probability plot.

ppcc_plot(, n_rough, n_fine, numpy.ndarray])

Creates a PPCC plot (rough + fine) for distribution shape estimation.

probability_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a probability plot for a specified distribution.

run_sequence_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a run sequence plot of y vs index or continuous index t.

weibull_plot(→ tuple[matplotlib.figure.Figure, ...)

Creates a Weibull probability plot.

Package Contents

drippy.block_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a block plot of y vs treatment, grouped by block.

Shows treatment effects within each block as connected line segments, one series per block level.

Parameters:
  • data – EDAData container. Requires factors with keys "treatment" and "block".

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

Raises:

ValueError – If factors is None or missing required keys.

drippy.star_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a star (radar) plot of multivariate data.

Each observation is drawn as a polygon on a polar axis, with one spoke per variable. Values are normalized 0-1 per variable.

Parameters:
  • data – EDAData container. Requires factors for additional variables beyond y.

  • fig – Matplotlib figure. If None, creates new polar figure.

  • ax – Matplotlib axes (polar). If None, creates new polar axes.

Returns:

The figure and axes containing the plot.

Raises:

ValueError – If factors is None.

drippy.youden_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, doe: bool = False) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a Youden plot comparing two labs or measurement methods.

Plots Lab 1 (y) vs Lab 2 (x) with an equality line and median reference lines to reveal bias and lab effects.

Parameters:
  • data – EDAData container. Requires x (Lab 2 measurements) and y (Lab 1 measurements).

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • doe – If True, overlays DOE design point markers.

Returns:

The figure and axes containing the plot.

Raises:

ValueError – If x is None.

class drippy.EDAData(y: collections.abc.Iterable[float], x: collections.abc.Iterable | None = None, t: collections.abc.Iterable[float] | None = None, factors: dict[str, collections.abc.Iterable] | None = None)[source]

Validated data container for EDA analysis.

Parameters:
  • y – Response variable. Must be 1D and non-empty.

  • x – Continuous predictor or single categorical factor. Must match len(y) if provided.

  • t – Continuous index variable (e.g. time, 1/B, position). Not restricted to real time. Must match len(y) if provided.

  • factors – Named factor arrays for multi-factor/DOE/comparative plots. Each value must match len(y).

y
x = None
t = None
factors = None
run_sequence_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.run_sequence_plot.

lag_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.lag_plot.

histogram(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.histogram.

normal_probability_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes, float | None][source]

Delegates to drippy.univariate.normal_probability_plot.

four_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Delegates to drippy.univariate.four_plot.

ppcc_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Delegates to drippy.univariate.ppcc_plot.

weibull_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.weibull_plot.

probability_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.probability_plot.

box_cox_linearity_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.box_cox_linearity_plot.

box_cox_normality_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Delegates to drippy.univariate.box_cox_normality_plot.

bootstrap_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.univariate.bootstrap_plot.

spectral_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.timeseries.spectral_plot.

autocorrelation_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.timeseries.autocorrelation_plot.

complex_demodulation_amplitude_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegate to timeseries.complex_demodulation_amplitude_plot.

complex_demodulation_phase_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegate to drippy.timeseries.complex_demodulation_phase_plot.

scatter_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.onefactor.scatter_plot.

box_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.onefactor.box_plot.

bihistogram(**kwargs: Any) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Delegates to drippy.onefactor.bihistogram.

qq_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.onefactor.qq_plot.

mean_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.onefactor.mean_plot.

sd_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.onefactor.sd_plot.

doe_scatter_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.multifactor.doe_scatter_plot (Phase 2).

doe_mean_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.multifactor.doe_mean_plot (Phase 2).

doe_sd_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.multifactor.doe_sd_plot (Phase 2).

contour_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.multifactor.contour_plot (Phase 2).

six_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, tuple[matplotlib.axes.Axes, matplotlib.axes.Axes, matplotlib.axes.Axes, matplotlib.axes.Axes, matplotlib.axes.Axes, matplotlib.axes.Axes]][source]

Delegates to drippy.regression.six_plot (Phase 3).

linear_correlation_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegate to drippy.regression.linear_correlation_plot (Phase 3).

linear_intercept_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegate to drippy.regression.linear_intercept_plot (Phase 3).

linear_slope_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.regression.linear_slope_plot (Phase 3).

linear_residual_sd_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegate to drippy.regression.linear_residual_sd_plot (Phase 3).

block_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.comparative.block_plot (Phase 4).

youden_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.comparative.youden_plot (Phase 4).

star_plot(**kwargs: Any) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Delegates to drippy.comparative.star_plot (Phase 4).

_validate_y() None[source]

Validate y array.

_validate_and_convert_x(x: collections.abc.Iterable | None) numpy.ndarray | None[source]

Validate and convert x array.

_validate_and_convert_t(t: collections.abc.Iterable[float] | None) numpy.ndarray | None[source]

Validate and convert t array.

_validate_and_convert_factors(factors: dict[str, collections.abc.Iterable] | None) dict[str, numpy.ndarray] | None[source]

Validate and convert factors dict.

drippy.contour_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, doe: bool = False) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a contour plot of y over the 2D factor space.

Uses tricontourf for robustness with irregular/DOE grids.

Parameters:
  • data – EDAData container. Requires exactly 2 factors.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • doe – If True, overlays design point markers.

Returns:

The figure and axes containing the plot.

drippy.doe_mean_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates mean plots of y grouped by each factor’s levels.

Shows group means connected by a line and a horizontal grand-mean reference line for each factor.

Parameters:
  • data – EDAData container. Requires factors.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – 1-D array of Axes, one per factor. If None, creates new axes.

Returns:

(fig, axes) where axes is a 1-D array of Axes.

drippy.doe_scatter_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates scatter plots of y vs each factor.

One subplot per factor in data.factors.

Parameters:
  • data – EDAData container. Requires factors.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – 1-D array of Axes, one per factor. If None, creates new axes.

Returns:

(fig, axes) where axes is a 1-D array of Axes.

drippy.doe_sd_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates standard deviation plots of y by each factor’s levels.

Shows group standard deviations connected by a line and a horizontal overall-SD reference line for each factor.

Parameters:
  • data – EDAData container. Requires factors.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – 1-D array of Axes, one per factor. If None, creates new axes.

Returns:

(fig, axes) where axes is a 1-D array of Axes.

drippy.bihistogram(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None, bins: int | str = 'auto') tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates side-by-side histograms for exactly 2 factor levels.

Parameters:
  • data – EDAData container. Requires x with exactly 2 unique levels.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – Array of 2 Axes. If None, creates new axes.

  • bins – Number of bins or bin strategy.

Returns:

(fig, axes) where axes is a 1-D array of 2 Axes.

drippy.box_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a box plot of y grouped by factor levels in x.

Parameters:
  • data – EDAData container. Requires x (categorical).

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.mean_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a mean plot of y grouped by factor levels in x.

Shows group means connected by a line, with a horizontal grand mean.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.qq_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a quantile-quantile plot comparing 2 factor level distributions.

Parameters:
  • data – EDAData container. Requires x with exactly 2 unique levels.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.scatter_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a scatter plot of y vs x.

Also used in regression context (see drippy.regression).

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.sd_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a standard deviation plot of y grouped by factor levels in x.

Shows group standard deviations connected by a line, with a horizontal overall standard deviation reference line.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.linear_correlation_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, window: int = 10) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Plots Pearson correlation coefficient for rolling windows of data.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • window – Number of observations per rolling window.

Returns:

The figure and axes containing the plot.

drippy.linear_intercept_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, window: int = 10) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Plots OLS regression intercept for rolling windows of data.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • window – Number of observations per rolling window.

Returns:

The figure and axes containing the plot.

drippy.linear_residual_sd_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, window: int = 10) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Plots residual standard deviation for rolling windows of data.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • window – Number of observations per rolling window.

Returns:

The figure and axes containing the plot.

drippy.linear_slope_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, window: int = 10) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Plots OLS regression slope for rolling windows of data.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • window – Number of observations per rolling window.

Returns:

The figure and axes containing the plot.

drippy.six_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates a 2x3 composite regression diagnostic plot.

The six panels are: scatter with regression line, residuals vs x, lag plot of residuals, histogram of residuals, normal probability plot of residuals, and run sequence of residuals.

Parameters:
  • data – EDAData container. Requires x.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – 2x3 array of Axes. If None, creates new axes.

Returns:

(fig, axes) where axes has shape (2, 3).

drippy.autocorrelation_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates autocorrelation plot with confidence intervals.

Includes 99%, 95%, and 80% confidence intervals.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.complex_demodulation_amplitude_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates instantaneous amplitude plot via Hilbert transform.

Parameters:
  • data – EDAData container. Requires t.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.complex_demodulation_phase_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates instantaneous phase plot via Hilbert transform with linear fit.

Parameters:
  • data – EDAData container. Requires t.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.spectral_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, alarm_levels: bool = True) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a Lomb-Scargle periodogram.

Parameters:
  • data – EDAData container. Requires t.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • alarm_levels – Whether to show false alarm probability levels.

Returns:

The figure and axes containing the plot.

drippy.bootstrap_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, statistic: collections.abc.Callable = np.mean, n_bootstrap: int = 10000) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a bootstrap distribution plot.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • statistic – Callable to bootstrap. Must be callable.

  • n_bootstrap – Number of bootstrap resamples.

Returns:

The figure and axes containing the plot.

drippy.box_cox_linearity_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, lmbda_range: tuple[float, float] = (-2, 2), n: int = 100) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a Box-Cox linearity plot.

Plots abs(corr(Y, X^λ)) across a range of λ values to find the power transformation of X that maximises linearity with Y.

Parameters:
  • data – EDAData container. Requires x > 0.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • lmbda_range – (min, max) range of λ to evaluate.

  • n – Number of λ values to evaluate.

Returns:

The figure and axes containing the plot.

drippy.box_cox_normality_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates a Box-Cox normality plot (2x2 grid).

Shows: original histogram, Box-Cox normality curve, transformed histogram, normal probability plot of transformed data.

Parameters:
  • data – EDAData container. Requires y > 0.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – ndarray of Axes with shape (2, 2). If None, creates new.

Returns:

(fig, axes) where axes has shape (2, 2).

drippy.four_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, axes: numpy.ndarray | None = None) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates a 4-plot (run sequence, lag, histogram, normal probability).

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • axes – ndarray of Axes with shape (2, 2). If None, creates new axes.

Returns:

(fig, axes_flat) where axes_flat has shape (4,).

drippy.histogram(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, bins: int | str = 'auto') tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a histogram of the data.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • bins – Number of bins or bin strategy.

Returns:

The figure and axes containing the plot.

drippy.lag_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, lag: int = 1) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a lag plot of the data.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • lag – Number of lags. Must be positive and less than len(y).

Returns:

The figure and axes containing the plot.

drippy.normal_probability_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, *, return_rsquared: bool = False) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes, float | None][source]

Creates a normal probability plot.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • return_rsquared – If True, includes R-squared as the third element.

Returns:

(fig, ax, r_squared) where r_squared is None if return_rsquared is False.

drippy.ppcc_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: numpy.ndarray | None = None, rough_range: tuple[float, float] = (-2, 2), n_rough: int = 50, n_fine: int = 100) tuple[matplotlib.figure.Figure, numpy.ndarray][source]

Creates a PPCC plot (rough + fine) for distribution shape estimation.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – ndarray of Axes with shape (2,). If None, creates new axes.

  • rough_range – (min, max) range for rough search.

  • n_rough – Points in rough plot.

  • n_fine – Points in fine plot.

Returns:

(fig, axes) where axes has shape (2,).

drippy.probability_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None, distribution: str = 'norm') tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a probability plot for a specified distribution.

Parameters:
  • data – EDAData container. Requires y.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

  • distribution – scipy.stats distribution name.

Returns:

The figure and axes containing the plot.

drippy.run_sequence_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a run sequence plot of y vs index or continuous index t.

Parameters:
  • data – EDAData container. Uses t as x-axis if present, else index.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.

drippy.weibull_plot(data: drippy.data.EDAData, fig: matplotlib.figure.Figure | None = None, ax: matplotlib.axes.Axes | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes][source]

Creates a Weibull probability plot.

Parameters:
  • data – EDAData container. Requires y > 0.

  • fig – Matplotlib figure. If None, creates new figure.

  • ax – Matplotlib axes. If None, creates new axes.

Returns:

The figure and axes containing the plot.