contingency_plot Module#

2x2 contingency table visualizations.

This module provides functions for visualizing 2x2 contingency tables with annotated heatmaps and summary metrics.

Functions#

episia.viz.contingency_plot.plot_contingency(result, *, title='2×2 Contingency Table', backend='plotly', theme='scientific', config=None)[source]#

Annotated 2×2 table heatmap with RR, OR, χ² summary.

Parameters:
  • result (Any) – Table2x2 instance, or AssociationResult with table metadata.

  • title (str) – Figure title.

  • backend (str) – ‘plotly’ or ‘matplotlib’.

  • theme (str) – Theme name.

  • config (PlotConfig | None) – Full PlotConfig override.

Returns:

Figure object.

Return type:

Any

Example:

from episia.stats.contingency import Table2x2
from episia.viz.contingency_plot import plot_contingency

tbl = Table2x2(40, 10, 20, 30)
plot_contingency(tbl, title="Exposure A vs Disease B").show()
episia.viz.contingency_plot.plot_measures(result, *, measures=None, title='Association Measures', backend='plotly', theme='scientific', config=None)[source]#

Horizontal CI chart for all association measures from a Table2x2.

Displays RR, OR, and RD side by side with their confidence intervals.

Parameters:
  • result (Any) – Table2x2 or AssociationResult.

  • measures (List[str] | None) – Subset of measures to display (default: all).

  • title (str) – Figure title.

  • backend (str) – ‘plotly’ or ‘matplotlib’.

  • theme (str) – Theme name.

  • config (PlotConfig | None) – Full PlotConfig override.

Returns:

Figure object.

Return type:

Any

Examples#

Contingency table heatmap:

from episia.stats.contingency import Table2x2
from episia.viz.contingency_plot import plot_contingency

table = Table2x2(a=40, b=10, c=20, d=30)
fig = plot_contingency(
    table,
    title="Exposure X Disease Association"
)
fig.show()

Comparison of all measures:

from episia.viz.contingency_plot import plot_measures

fig = plot_measures(
    table,
    title="Association Measures with 95% CI",
    backend="matplotlib"  # Publication quality
)

# Subset of measures
fig = plot_measures(
    table,
    measures=["Risk Ratio", "Odds Ratio"],
    title="Key Effect Measures"
)