causalis.shared.outcome_plots

Module Contents

Functions

outcome_plot_dist

Plot the distribution of the outcome for each treatment on a single, pretty plot.

outcome_plot_boxplot

Prettified boxplot of the outcome by treatment.

outcome_plots

Plot the distribution of the outcome for every treatment on one plot, and also produce a boxplot by treatment to visualize outliers.

API

causalis.shared.outcome_plots.outcome_plot_dist(data: Union[causalis.dgp.causaldata.CausalData, causalis.dgp.multicausaldata.MultiCausalData], treatment: Optional[str] = None, outcome: Optional[str] = None, bins: Union[str, int] = 'fd', density: bool = True, alpha: float = 0.45, sharex: bool = True, kde: bool = True, clip: Optional[Tuple[float, float]] = (0.01, 0.99), figsize: Tuple[float, float] = (9, 5.5), dpi: int = 220, font_scale: float = 1.15, palette: Optional[Union[list, dict]] = None, save: Optional[str] = None, save_dpi: Optional[int] = None, transparent: bool = False) matplotlib.pyplot.Figure

Plot the distribution of the outcome for each treatment on a single, pretty plot.

Features

  • High-DPI canvas + scalable fonts

  • Default Matplotlib colors; KDE & mean lines match their histogram colors

  • Numeric outcomes: shared x-range (optional), optional KDE, quantile clipping

  • Categorical outcomes: normalized grouped bars by treatment

  • Binary outcomes: proportion bars with percent labels (no KDE)

  • Optional hi-res export (PNG/SVG/PDF)

Parameters

data : CausalData or MultiCausalData The causal dataset containing the dataframe and metadata. treatment : str, optional Treatment column name. For MultiCausalData, if not provided, one-hot treatment columns are converted to assigned treatment labels. outcome : str, optional Outcome column name. Defaults to the one in data_contracts. bins : str or int, default “fd” Number of bins for histograms (e.g., “fd”, “auto”, or an integer). density : bool, default True Whether to normalize histograms to form a density. alpha : float, default 0.45 Transparency for overlaid histograms and bars. sharex : bool, default True If True, use the same x-limits across treatments for numeric outcomes. kde : bool, default True Whether to overlay a smooth density (KDE) for numeric outcomes. clip : tuple, optional, default (0.01, 0.99) Quantiles to trim tails for nicer view of numeric outcomes. figsize : tuple, default (9, 5.5) Figure size in inches (width, height). dpi : int, default 220 Dots per inch for the figure. font_scale : float, default 1.15 Scaling factor for all font sizes in the plot. palette : list or dict, optional Color palette for treatments (list in treatment order or dict {treatment: color}). save : str, optional Path to save the figure (e.g., “outcome.png”). save_dpi : int, optional DPI for the saved figure. Defaults to 300 for raster formats. transparent : bool, default False Whether to save the figure with a transparent background.

Returns

matplotlib.figure.Figure The generated figure object.

causalis.shared.outcome_plots.outcome_plot_boxplot(data: Union[causalis.dgp.causaldata.CausalData, causalis.dgp.multicausaldata.MultiCausalData], treatment: Optional[str] = None, outcome: Optional[str] = None, figsize: Tuple[float, float] = (9, 5.5), dpi: int = 220, font_scale: float = 1.15, showfliers: bool = True, patch_artist: bool = True, palette: Optional[Union[list, dict]] = None, save: Optional[str] = None, save_dpi: Optional[int] = None, transparent: bool = False) matplotlib.pyplot.Figure

Prettified boxplot of the outcome by treatment.

Features

  • High-DPI figure, scalable fonts

  • Soft modern color styling (default Matplotlib palette)

  • Optional outliers, gentle transparency

  • Optional save to PNG/SVG/PDF

Parameters

data : CausalData or MultiCausalData The causal dataset containing the dataframe and metadata. treatment : str, optional Treatment column name. For MultiCausalData, if not provided, one-hot treatment columns are converted to assigned treatment labels. outcome : str, optional Outcome column name. Defaults to the one in data_contracts. figsize : tuple, default (9, 5.5) Figure size in inches (width, height). dpi : int, default 220 Dots per inch for the figure. font_scale : float, default 1.15 Scaling factor for all font sizes in the plot. showfliers : bool, default True Whether to show outliers (fliers). patch_artist : bool, default True Whether to fill boxes with color. palette : list or dict, optional Color palette for treatments (list in treatment order or dict {treatment: color}). save : str, optional Path to save the figure (e.g., “boxplot.png”). save_dpi : int, optional DPI for the saved figure. Defaults to 300 for raster formats. transparent : bool, default False Whether to save the figure with a transparent background.

Returns

matplotlib.figure.Figure The generated figure object.

causalis.shared.outcome_plots.outcome_plots(data: Union[causalis.dgp.causaldata.CausalData, causalis.dgp.multicausaldata.MultiCausalData], treatment: Optional[str] = None, outcome: Optional[str] = None, bins: int = 30, density: bool = True, alpha: float = 0.5, figsize: Tuple[float, float] = (7, 4), sharex: bool = True, palette: Optional[Union[list, dict]] = None) Tuple[matplotlib.pyplot.Figure, matplotlib.pyplot.Figure]

Plot the distribution of the outcome for every treatment on one plot, and also produce a boxplot by treatment to visualize outliers.

Parameters

data : CausalData or MultiCausalData The causal dataset containing the dataframe and metadata. treatment : str, optional Treatment column name. Defaults to the one in data_contracts. outcome : str, optional Outcome column name. Defaults to the one in data_contracts. bins : int, default 30 Number of bins for histograms when the outcome is numeric. density : bool, default True Whether to normalize histograms to form a density. alpha : float, default 0.5 Transparency for overlaid histograms. figsize : tuple, default (7, 4) Figure size for the plots (width, height). sharex : bool, default True If True and the outcome is numeric, use the same x-limits across treatments. palette : list or dict, optional Color palette for treatments (list in treatment order or dict {treatment: color}).

Returns

Tuple[matplotlib.figure.Figure, matplotlib.figure.Figure] (fig_distribution, fig_boxplot)