From f1a454764c0ad512ec29f5ebf14585a02248ca62 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Sat, 25 Apr 2026 17:37:36 +0000 Subject: [PATCH 01/11] Add scatter_plot for InteractionValues (#418) Introduces shapiq.scatter_plot, a SHAP-style scatter (dependence) plot that works for both first-order Shapley values and higher-order interactions. For higher-order interactions the x-axis is restricted to a single feature in the interaction tuple (defaulting to the first, overridable via x_feature), matching the design discussed in the issue. https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- examples/visualization/plot_scatter.py | 123 ++++++ src/shapiq/__init__.py | 2 + src/shapiq/plot/__init__.py | 2 + src/shapiq/plot/scatter.py | 297 ++++++++++++++ .../tests_unit/tests_plots/test_scatter.py | 379 ++++++++++++++++++ 5 files changed, 803 insertions(+) create mode 100644 examples/visualization/plot_scatter.py create mode 100644 src/shapiq/plot/scatter.py create mode 100644 tests/shapiq/tests_unit/tests_plots/test_scatter.py diff --git a/examples/visualization/plot_scatter.py b/examples/visualization/plot_scatter.py new file mode 100644 index 000000000..581d7d1e8 --- /dev/null +++ b/examples/visualization/plot_scatter.py @@ -0,0 +1,123 @@ +""" +Scatter Plot +============ + +This example demonstrates :func:`~shapiq.scatter_plot`, which plots the +per-sample value of an interaction against the value of one feature. For +first-order interactions this matches SHAP's ``shap.plots.scatter``; for +higher-order interactions the x-axis is restricted to a single feature in +the interaction tuple. +""" + +from __future__ import annotations + +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from xgboost import XGBRegressor + +import shapiq + +# %% +# Train a Model +# ------------- + +x_data, y_data = shapiq.datasets.load_california_housing(to_numpy=False) +feature_names = list(x_data.columns) +x_data, y_data = x_data.values, y_data.values +x_train, x_test, y_train, y_test = train_test_split( + x_data, + y_data, + test_size=0.2, + random_state=42, +) +model = XGBRegressor(random_state=42, max_depth=4, n_estimators=50) +model.fit(x_train, y_train) + +# %% +# Compute Explanations for Multiple Instances +# --------------------------------------------- +# We explain 20 test instances to keep the example fast. + +x_explain = x_test[:20] +explainer = shapiq.TabularExplainer( + model, + data=x_test, + index="FSII", + max_order=3, + random_state=42, +) +explanations = explainer.explain_X(x_explain, budget=200) + +# %% +# Default Scatter Plot +# --------------------- +# Without an explicit ``interaction``, the most important interaction is +# selected automatically (by mean absolute aggregated value). + +shapiq.scatter_plot(explanations, x_explain, feature_names=feature_names) + +# %% +# Main Effect of a Single Feature +# -------------------------------- +# Pass a feature name (or index) to plot its first-order Shapley value +# against its feature values. + +shapiq.scatter_plot( + explanations, + x_explain, + interaction="MedInc", + feature_names=feature_names, +) + +# %% +# Pairwise Interaction +# --------------------- +# Plot a higher-order interaction value. By default the x-axis is the first +# feature in the interaction tuple. + +shapiq.scatter_plot( + explanations, + x_explain, + interaction=("MedInc", "Latitude"), + feature_names=feature_names, +) + +# %% +# Pairwise Interaction with Chosen X-axis +# ----------------------------------------- +# Use ``x_feature`` to switch which feature in the interaction is on the x-axis. + +shapiq.scatter_plot( + explanations, + x_explain, + interaction=("MedInc", "Latitude"), + x_feature="Latitude", + feature_names=feature_names, +) + +# %% +# Color by Another Feature +# ------------------------- +# Set ``color`` to render points using a red-blue colormap based on another +# feature's value, and add a colorbar. + +shapiq.scatter_plot( + explanations, + x_explain, + interaction="MedInc", + color="HouseAge", + feature_names=feature_names, +) + +# %% +# Custom Axis +# ----------- + +fig, ax = plt.subplots(figsize=(6, 5)) +shapiq.scatter_plot( + explanations, + x_explain, + interaction="MedInc", + feature_names=feature_names, + ax=ax, +) diff --git a/src/shapiq/__init__.py b/src/shapiq/__init__.py index f4af43b9b..d5eac2a09 100644 --- a/src/shapiq/__init__.py +++ b/src/shapiq/__init__.py @@ -63,6 +63,7 @@ beeswarm_plot, force_plot, network_plot, + scatter_plot, sentence_plot, si_graph_plot, stacked_bar_plot, @@ -125,6 +126,7 @@ "sentence_plot", "upset_plot", "beeswarm_plot", + "scatter_plot", # public utils "powerset", "get_explicit_subsets", diff --git a/src/shapiq/plot/__init__.py b/src/shapiq/plot/__init__.py index 3814b37d4..afbb631ad 100644 --- a/src/shapiq/plot/__init__.py +++ b/src/shapiq/plot/__init__.py @@ -8,6 +8,7 @@ from .beeswarm import beeswarm_plot from .force import force_plot from .network import network_plot +from .scatter import scatter_plot from .sentence import sentence_plot from .si_graph import si_graph_plot from .stacked_bar import stacked_bar_plot @@ -25,6 +26,7 @@ "sentence_plot", "upset_plot", "beeswarm_plot", + "scatter_plot", # utils "abbreviate_feature_names", ] diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py new file mode 100644 index 000000000..b1e3bc47f --- /dev/null +++ b/src/shapiq/plot/scatter.py @@ -0,0 +1,297 @@ +"""Scatter (a.k.a. dependence) plot for :class:`~shapiq.InteractionValues`. + +Plots the per-sample interaction value of a chosen interaction tuple against +the value of one feature. For first-order interactions this matches +``shap.plots.scatter``; for higher-order interactions the x-axis is restricted +to a single feature (selected from the interaction tuple). +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +from shapiq.interaction_values import InteractionValues, aggregate_interaction_values + +from .beeswarm import _get_red_blue_cmap +from .utils import abbreviate_feature_names, format_labels + +if TYPE_CHECKING: + from matplotlib.axes import Axes + from matplotlib.figure import Figure + + +__all__ = ["scatter_plot"] + + +def _resolve_feature( + feature: int | str | np.integer, + name_to_idx: dict[str, int], + n_players: int, +) -> int: + """Resolves a feature identifier (index or name) to an integer index.""" + if isinstance(feature, (int, np.integer)) and not isinstance(feature, bool): + idx = int(feature) + if not 0 <= idx < n_players: + error_message = f"Feature index {idx} out of range [0, {n_players})." + raise ValueError(error_message) + return idx + if isinstance(feature, str): + if feature not in name_to_idx: + error_message = f"Unknown feature name: {feature!r}." + raise ValueError(error_message) + return name_to_idx[feature] + error_message = f"Feature identifier must be int or str, got {type(feature).__name__}." + raise TypeError(error_message) + + +def _resolve_interaction( + interaction: tuple[int, ...] | tuple[str, ...] | int | str | None, + interaction_values_list: list[InteractionValues], + name_to_idx: dict[str, int], + n_players: int, +) -> tuple[int, ...]: + """Resolves an ``interaction`` argument to a sorted tuple of feature indices.""" + if interaction is None: + agg = aggregate_interaction_values( + [abs(iv) for iv in interaction_values_list], aggregation="mean" + ) + candidates = [(k, v) for k, v in agg.interactions.items() if len(k) >= 1] + if not candidates: + error_message = "No non-empty interactions available to plot." + raise ValueError(error_message) + candidates.sort(key=lambda kv: kv[1], reverse=True) + return candidates[0][0] + + if isinstance(interaction, (int, np.integer, str)): + return (_resolve_feature(interaction, name_to_idx, n_players),) + + if isinstance(interaction, tuple): + resolved = tuple( + sorted(_resolve_feature(f, name_to_idx, n_players) for f in interaction) + ) + if len(resolved) == 0: + error_message = "interaction tuple must contain at least one feature." + raise ValueError(error_message) + return resolved + + error_message = ( + f"interaction must be a tuple, int, str, or None. Got {type(interaction).__name__}." + ) + raise TypeError(error_message) + + +def scatter_plot( + interaction_values_list: list[InteractionValues], + data: pd.DataFrame | np.ndarray, + interaction: tuple[int, ...] | tuple[str, ...] | int | str | None = None, + *, + x_feature: int | str | None = None, + color: int | str | None = None, + feature_names: list[str] | None = None, + abbreviate: bool = True, + alpha: float = 0.8, + dot_size: float = 16, + jitter: float = 0.0, + ax: Axes | None = None, + show: bool = True, +) -> Axes | None: + """Plots a scatter (dependence) plot of an interaction's per-sample value against one feature. + + Inspired by `SHAP's `_ + ``shap.plots.scatter``. For a first-order interaction ``(i,)`` the x-axis is feature ``i``'s + value across samples and the y-axis is its Shapley value. For higher-order interactions like + ``(i, j)`` the x-axis is the value of a single feature in the interaction (selected via + ``x_feature``, defaulting to the first feature in the sorted tuple) and the y-axis is the + higher-order interaction value. + + Args: + interaction_values_list: A non-empty list of :class:`~shapiq.InteractionValues` objects, + one per sample row of ``data``. + data: The feature values for the samples, as a ``pandas.DataFrame`` or 2D ``numpy`` array. + Must have the same number of rows as ``interaction_values_list``. + interaction: Identifies the interaction to plot. Accepts an ``int`` or ``str`` (treated + as a main effect single-element tuple), a tuple of feature indices like ``(0, 2)``, + or a tuple of feature names like ``("MedInc", "Latitude")``. If ``None``, the + globally most important interaction (by mean absolute aggregated value) is selected. + Defaults to ``None``. + x_feature: For higher-order interactions, which feature in ``interaction`` to place on + the x-axis. Must be a member of ``interaction``. Ignored for first-order + interactions. Defaults to the first feature in the sorted interaction tuple. + color: Feature index or name used to color the points (with a red-blue colormap and a + colorbar). If ``None`` (default), all points are drawn in a neutral color and no + colorbar is shown. ``NaN`` color values render gray. + feature_names: Names of the features. Defaults to ``["F0", "F1", ...]``. + abbreviate: Whether to abbreviate feature names for axis labels. Defaults to ``True``. + alpha: Transparency of the points, in ``(0, 1]``. Defaults to ``0.8``. + dot_size: Size of the scatter points. Defaults to ``16``. + jitter: If positive, adds Gaussian jitter to the plotted x-values, scaled to + ``jitter * std(x_vals)``. Useful for categorical or integer-valued features. + Defaults to ``0.0`` (disabled). + ax: ``matplotlib`` ``Axes`` object to plot on. If ``None``, a new figure and axes are + created. + show: Whether to call ``plt.show()`` at the end. If ``False``, returns the axes instead. + Defaults to ``True``. + + Returns: + The ``Axes`` object if ``show=False``, otherwise ``None``. + + Raises: + ValueError: If inputs are inconsistent (empty list, length mismatch, unknown feature + names or indices, an interaction tuple not present in the lookup, an out-of-tuple + ``x_feature``, or invalid numeric parameters). + TypeError: If ``data`` is not a DataFrame or ndarray, or if a feature identifier has an + unsupported type. + + """ + if not isinstance(interaction_values_list, list) or len(interaction_values_list) == 0: + error_message = "interaction_values_list must be a non-empty list." + raise ValueError(error_message) + if not isinstance(data, pd.DataFrame) and not isinstance(data, np.ndarray): + error_message = f"data must be a pandas DataFrame or a numpy array. Got: {type(data)}." + raise TypeError(error_message) + if len(interaction_values_list) != len(data): + error_message = ( + "Length of interaction_values_list must match number of rows in data." + ) + raise ValueError(error_message) + if alpha <= 0 or alpha > 1: + error_message = "alpha must be between 0 and 1." + raise ValueError(error_message) + if dot_size <= 0: + error_message = "dot_size must be a positive value." + raise ValueError(error_message) + if jitter < 0: + error_message = "jitter must be non-negative." + raise ValueError(error_message) + + n_players = interaction_values_list[0].n_players + + if feature_names is None: + feature_names_full = [f"F{i}" for i in range(n_players)] + else: + if len(feature_names) != n_players: + error_message = "Length of feature_names must match n_players." + raise ValueError(error_message) + feature_names_full = list(feature_names) + + feature_names_display = ( + abbreviate_feature_names(feature_names_full) if abbreviate else list(feature_names_full) + ) + name_to_idx = {n: i for i, n in enumerate(feature_names_full)} + display_mapping = dict(enumerate(feature_names_display)) + + interaction_tuple = _resolve_interaction( + interaction, interaction_values_list, name_to_idx, n_players + ) + if interaction_tuple not in interaction_values_list[0].interaction_lookup: + error_message = ( + f"Interaction {interaction_tuple} not found in InteractionValues lookup." + ) + raise ValueError(error_message) + + if len(interaction_tuple) == 1: + x_idx = interaction_tuple[0] + elif x_feature is None: + x_idx = interaction_tuple[0] + else: + x_idx = _resolve_feature(x_feature, name_to_idx, n_players) + if x_idx not in interaction_tuple: + error_message = ( + f"x_feature {x_feature!r} must be a member of interaction {interaction_tuple}." + ) + raise ValueError(error_message) + + color_idx: int | None = None + if color is not None: + color_idx = _resolve_feature(color, name_to_idx, n_players) + + x_numpy = ( + data.to_numpy(dtype=float) if isinstance(data, pd.DataFrame) else data.astype(float) + ) + x_vals = x_numpy[:, x_idx] + y_vals = np.array( + [iv.dict_values[interaction_tuple] for iv in interaction_values_list], dtype=float + ) + + if ax is None: + _fig, ax = plt.subplots(figsize=(7, 5)) + fig: Figure = ax.get_figure() # type: ignore[assignment] + + x_plot = x_vals + if jitter > 0: + std = float(np.nanstd(x_vals)) + if std > 0: + rng = np.random.default_rng(0) + x_plot = x_vals + rng.normal(0.0, jitter * std, size=x_vals.shape) + + n_samples = len(x_vals) + if color_idx is None: + ax.scatter( + x_plot, + y_vals, + color="#1f77b4", + s=dot_size, + alpha=alpha, + linewidth=0, + rasterized=n_samples > 500, + ) + else: + c_vals = x_numpy[:, color_idx] + nan_mask = np.isnan(c_vals) + valid_mask = ~nan_mask + + if nan_mask.any(): + ax.scatter( + x_plot[nan_mask], + y_vals[nan_mask], + color="#777777", + s=dot_size, + alpha=alpha * 0.5, + linewidth=0, + rasterized=n_samples > 500, + ) + + if valid_mask.any(): + valid_color_vals = c_vals[valid_mask] + vmin = float(np.min(valid_color_vals)) + vmax = float(np.max(valid_color_vals)) + if vmin == vmax: + vmin -= 1e-9 + vmax += 1e-9 + sc = ax.scatter( + x_plot[valid_mask], + y_vals[valid_mask], + c=valid_color_vals, + cmap=_get_red_blue_cmap(), + vmin=vmin, + vmax=vmax, + s=dot_size, + alpha=alpha, + linewidth=0, + rasterized=n_samples > 500, + ) + cb = fig.colorbar(sc, ax=ax, aspect=80) + cb.set_label(display_mapping[color_idx], size=11, labelpad=0) + cb.ax.tick_params(labelsize=10, length=0) + cb.outline.set_visible(False) # type: ignore[union-attr] + + ax.axhline(0, color="#999999", linestyle="-", linewidth=1, zorder=1) + ax.set_xlabel(display_mapping[x_idx], fontsize=12) + if len(interaction_tuple) == 1: + ax.set_ylabel("SHAP value", fontsize=12) + else: + label = format_labels(display_mapping, interaction_tuple) + ax.set_ylabel(f"Interaction value: {label}", fontsize=12) + ax.spines["top"].set_visible(False) + ax.spines["right"].set_visible(False) + + plt.tight_layout() + + if not show: + return ax + plt.show() + return None diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py new file mode 100644 index 000000000..5ec87cc70 --- /dev/null +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -0,0 +1,379 @@ +"""This module contains all tests for the scatter plot.""" + +from __future__ import annotations + +import matplotlib.colors as mcolors +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import pytest +from matplotlib import collections + +from shapiq.interaction_values import InteractionValues +from shapiq.plot import scatter_plot + +N_SAMPLES = 10 +N_PLAYERS = 5 + + +@pytest.fixture +def mock_interaction_data() -> tuple[list[InteractionValues], np.ndarray, pd.DataFrame, list[str]]: + """Creates mock data for scatter plot tests.""" + lookup = { + (): 1, + (0,): 0, + (1,): 1, + (2,): 2, + (3,): 3, + (4,): 4, + (0, 1): 5, + (0, 2): 6, + (1, 3): 7, + (2, 4): 8, + (0, 1, 2): 9, + } + n_interactions = len(lookup) + + interaction_values_list = [] + rng = np.random.default_rng(42) + for _ in range(N_SAMPLES): + values = rng.random(n_interactions) * 2 - 1 + iv = InteractionValues( + values=values, + interaction_lookup=lookup, + index="k-SII", + min_order=1, + max_order=3, + n_players=N_PLAYERS, + baseline_value=rng.random(), + ) + interaction_values_list.append(iv) + + feature_data_np = rng.random((N_SAMPLES, N_PLAYERS)) + feature_names = [f"feature_{i}" for i in range(N_PLAYERS)] + feature_data_pd = pd.DataFrame(feature_data_np, columns=feature_names) + + return interaction_values_list, feature_data_np, feature_data_pd, feature_names + + +def test_scatter_plot_basic(mock_interaction_data): + """Tests basic scatter plot calls with numpy/pandas inputs and shorthand interaction args.""" + interaction_values_list, feature_data_np, feature_data_pd, feature_names = mock_interaction_data + + ax = scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + feature_names=feature_names, + show=False, + ) + assert isinstance(ax, plt.Axes) + assert "feature" in ax.get_xlabel().lower() or "f0" in ax.get_xlabel().lower() + assert ax.get_ylabel() == "SHAP value" + plt.close("all") + + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + show=False, + ) + assert isinstance(ax, plt.Axes) + plt.close("all") + + ax = scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + show=False, + ) + assert ax.get_xlabel().startswith("F") + plt.close("all") + + # Auto-pick interaction + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + feature_names=feature_names, + show=False, + ) + assert isinstance(ax, plt.Axes) + assert ax.get_ylabel() != "" + plt.close("all") + + # Equivalence of int / str / tuple shorthand for main effects + labels = [] + for arg in (0, "feature_0", (0,), ("feature_0",)): + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=arg, + feature_names=feature_names, + show=False, + ) + labels.append(ax.get_xlabel()) + plt.close("all") + assert len(set(labels)) == 1 + + # Higher-order: default x-axis is first feature in tuple + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0, 1), + feature_names=feature_names, + abbreviate=False, + show=False, + ) + assert ax.get_xlabel() == "feature_0" + assert "feature_0" in ax.get_ylabel() and "feature_1" in ax.get_ylabel() + plt.close("all") + + # Higher-order with explicit x_feature by index + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0, 1), + x_feature=1, + feature_names=feature_names, + abbreviate=False, + show=False, + ) + assert ax.get_xlabel() == "feature_1" + plt.close("all") + + # Higher-order via names + x_feature by name + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=("feature_0", "feature_1"), + x_feature="feature_1", + feature_names=feature_names, + abbreviate=False, + show=False, + ) + assert ax.get_xlabel() == "feature_1" + plt.close("all") + + +def test_scatter_plot_options(mock_interaction_data): + """Tests scatter_plot color, jitter, ax, abbreviate options.""" + interaction_values_list, _, feature_data_pd, feature_names = mock_interaction_data + + # color = explicit feature -> colorbar added + fig, ax = plt.subplots() + n_axes_before = len(fig.axes) + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + color="feature_2", + feature_names=feature_names, + abbreviate=False, + ax=ax, + show=False, + ) + assert len(fig.axes) > n_axes_before + cbar_labels = [a.get_ylabel() for a in fig.axes if a is not ax] + assert "feature_2" in cbar_labels + plt.close("all") + + # color = None -> no extra colorbar axes added + fig, ax = plt.subplots() + n_axes_before = len(fig.axes) + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + color=None, + feature_names=feature_names, + ax=ax, + show=False, + ) + assert len(fig.axes) == n_axes_before + plt.close("all") + + # NaN in color feature -> gray points at half alpha + data_with_nan = feature_data_pd.copy() + data_with_nan.iloc[0, 2] = np.nan + test_alpha = 0.8 + ax = scatter_plot( + interaction_values_list, + data_with_nan, + interaction=(0,), + color="feature_2", + alpha=test_alpha, + feature_names=feature_names, + show=False, + ) + expected_nan_color = list(mcolors.to_rgba("#777777")) + expected_nan_alpha = test_alpha * 0.5 + expected_nan_color[3] = expected_nan_alpha + nan_points_found = False + for collection in ax.collections: + colors = collection.get_facecolors() + if ( + isinstance(collection, collections.PathCollection) + and collection.get_alpha() == expected_nan_alpha + and len(colors) > 0 + and np.allclose(colors[0], expected_nan_color) + ): + nan_points_found = True + break + assert nan_points_found + plt.close("all") + + # All-same color values -> no error (vmin/vmax epsilon) + data_const_color = feature_data_pd.copy() + data_const_color.iloc[:, 2] = 0.5 + ax = scatter_plot( + interaction_values_list, + data_const_color, + interaction=(0,), + color="feature_2", + feature_names=feature_names, + show=False, + ) + assert isinstance(ax, plt.Axes) + plt.close("all") + + # ax= passed in returns the same axes + _, ax_existing = plt.subplots() + ax_returned = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + ax=ax_existing, + show=False, + ) + assert ax_returned is ax_existing + plt.close("all") + + # abbreviate=False keeps long names + long_names = [f"a_very_long_feature_name_{i}" for i in range(N_PLAYERS)] + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=long_names, + abbreviate=False, + show=False, + ) + assert ax.get_xlabel() == long_names[0] + plt.close("all") + + # jitter changes plotted x values + ax = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + jitter=0.5, + show=False, + ) + raw = feature_data_pd.iloc[:, 0].to_numpy() + plotted = ax.collections[0].get_offsets()[:, 0] + assert np.max(np.abs(plotted - raw)) > 0 + plt.close("all") + + +def test_scatter_plot_errors(mock_interaction_data): + """Tests that scatter_plot raises informative errors for bad inputs.""" + interaction_values_list, feature_data_np, feature_data_pd, feature_names = mock_interaction_data + + with pytest.raises(ValueError, match="non-empty list"): + scatter_plot([], feature_data_np, interaction=(0,), show=False) + + with pytest.raises(ValueError, match="must match number of rows"): + scatter_plot( + interaction_values_list, + feature_data_np[1:], + interaction=(0,), + show=False, + ) + + with pytest.raises(TypeError, match="must be a pandas DataFrame or a numpy array"): + scatter_plot(interaction_values_list, "not_a_valid_data_type", interaction=(0,), show=False) + + with pytest.raises(ValueError, match="Unknown feature name"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=("nonexistent",), + feature_names=feature_names, + show=False, + ) + + with pytest.raises(ValueError, match="out of range"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(99,), + feature_names=feature_names, + show=False, + ) + + with pytest.raises(ValueError, match="not found in InteractionValues"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(3, 4), + feature_names=feature_names, + show=False, + ) + + with pytest.raises(ValueError, match="must be a member of interaction"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0, 1), + x_feature=2, + feature_names=feature_names, + show=False, + ) + + with pytest.raises(ValueError, match="Length of feature_names must match"): + scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + feature_names=feature_names[:-1], + show=False, + ) + + with pytest.raises(ValueError, match="alpha must be between 0 and 1"): + scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + alpha=-0.1, + show=False, + ) + + with pytest.raises(ValueError, match="alpha must be between 0 and 1"): + scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + alpha=2.0, + show=False, + ) + + with pytest.raises(ValueError, match="dot_size must be a positive value"): + scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + dot_size=-1, + show=False, + ) + + with pytest.raises(ValueError, match="jitter must be non-negative"): + scatter_plot( + interaction_values_list, + feature_data_np, + interaction=(0,), + jitter=-0.5, + show=False, + ) From c79429773a59ae5158505888ccb32b3754caba6d Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Sat, 25 Apr 2026 18:06:18 +0000 Subject: [PATCH 02/11] Fix ruff formatting/lint in scatter_plot Apply ruff-format collapses for lines that fit, simplify a redundant if/elif branch, and switch isinstance() tuples to PEP 604 union syntax to satisfy UP038 (matches the rest of the codebase). https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- src/shapiq/plot/scatter.py | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index b1e3bc47f..73574040a 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -33,7 +33,7 @@ def _resolve_feature( n_players: int, ) -> int: """Resolves a feature identifier (index or name) to an integer index.""" - if isinstance(feature, (int, np.integer)) and not isinstance(feature, bool): + if isinstance(feature, int | np.integer) and not isinstance(feature, bool): idx = int(feature) if not 0 <= idx < n_players: error_message = f"Feature index {idx} out of range [0, {n_players})." @@ -66,13 +66,11 @@ def _resolve_interaction( candidates.sort(key=lambda kv: kv[1], reverse=True) return candidates[0][0] - if isinstance(interaction, (int, np.integer, str)): + if isinstance(interaction, int | np.integer | str): return (_resolve_feature(interaction, name_to_idx, n_players),) if isinstance(interaction, tuple): - resolved = tuple( - sorted(_resolve_feature(f, name_to_idx, n_players) for f in interaction) - ) + resolved = tuple(sorted(_resolve_feature(f, name_to_idx, n_players) for f in interaction)) if len(resolved) == 0: error_message = "interaction tuple must contain at least one feature." raise ValueError(error_message) @@ -154,9 +152,7 @@ def scatter_plot( error_message = f"data must be a pandas DataFrame or a numpy array. Got: {type(data)}." raise TypeError(error_message) if len(interaction_values_list) != len(data): - error_message = ( - "Length of interaction_values_list must match number of rows in data." - ) + error_message = "Length of interaction_values_list must match number of rows in data." raise ValueError(error_message) if alpha <= 0 or alpha > 1: error_message = "alpha must be between 0 and 1." @@ -188,14 +184,10 @@ def scatter_plot( interaction, interaction_values_list, name_to_idx, n_players ) if interaction_tuple not in interaction_values_list[0].interaction_lookup: - error_message = ( - f"Interaction {interaction_tuple} not found in InteractionValues lookup." - ) + error_message = f"Interaction {interaction_tuple} not found in InteractionValues lookup." raise ValueError(error_message) - if len(interaction_tuple) == 1: - x_idx = interaction_tuple[0] - elif x_feature is None: + if len(interaction_tuple) == 1 or x_feature is None: x_idx = interaction_tuple[0] else: x_idx = _resolve_feature(x_feature, name_to_idx, n_players) @@ -209,9 +201,7 @@ def scatter_plot( if color is not None: color_idx = _resolve_feature(color, name_to_idx, n_players) - x_numpy = ( - data.to_numpy(dtype=float) if isinstance(data, pd.DataFrame) else data.astype(float) - ) + x_numpy = data.to_numpy(dtype=float) if isinstance(data, pd.DataFrame) else data.astype(float) x_vals = x_numpy[:, x_idx] y_vals = np.array( [iv.dict_values[interaction_tuple] for iv in interaction_values_list], dtype=float From 8d2aebfe295f0718dec13f687590ac4297ff5fb2 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Sat, 25 Apr 2026 18:24:35 +0000 Subject: [PATCH 03/11] Cover remaining error branches in scatter_plot tests Adds tests for the four error paths flagged by codecov: TypeError on non-tuple interaction (float, list), empty interaction tuple, tuple of unsupported feature type (float), and the "no non-empty interactions" fallback when interaction=None on an InteractionValues that contains only the empty coalition. https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- .../tests_unit/tests_plots/test_scatter.py | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py index 5ec87cc70..0252e4cb3 100644 --- a/tests/shapiq/tests_unit/tests_plots/test_scatter.py +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -377,3 +377,66 @@ def test_scatter_plot_errors(mock_interaction_data): jitter=-0.5, show=False, ) + + # interaction with unsupported type (e.g., float) -> TypeError from _resolve_interaction + with pytest.raises(TypeError, match="interaction must be a tuple"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=1.5, + feature_names=feature_names, + show=False, + ) + + # interaction with a list -> not a tuple -> TypeError + with pytest.raises(TypeError, match="interaction must be a tuple"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=[0, 1], + feature_names=feature_names, + show=False, + ) + + # empty interaction tuple -> ValueError + with pytest.raises(ValueError, match="must contain at least one feature"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(), + feature_names=feature_names, + show=False, + ) + + # tuple of unsupported feature type -> TypeError from _resolve_feature + with pytest.raises(TypeError, match="Feature identifier must be int or str"): + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(1.5,), + feature_names=feature_names, + show=False, + ) + + +def test_scatter_plot_no_non_empty_interactions(): + """interaction=None with an InteractionValues containing only the empty key raises.""" + n_samples = 4 + n_players = 3 + lookup = {(): 0} + rng = np.random.default_rng(0) + ivs = [ + InteractionValues( + values=np.array([rng.random()]), + interaction_lookup=lookup, + index="k-SII", + min_order=0, + max_order=0, + n_players=n_players, + baseline_value=0.0, + ) + for _ in range(n_samples) + ] + data = rng.random((n_samples, n_players)) + with pytest.raises(ValueError, match="No non-empty interactions"): + scatter_plot(ivs, data, interaction=None, show=False) From 68096da4625da2b64d70f1d753583111705370b7 Mon Sep 17 00:00:00 2001 From: Maximilian Date: Sat, 25 Apr 2026 20:29:50 +0200 Subject: [PATCH 04/11] Use canonical __getitem__ in scatter_plot; bump example to 200 samples, max_order=2 Review fixes for the scatter plot: - y-values now go through iv[interaction_tuple] (canonical InteractionValues __getitem__ contract: missing interactions resolve to 0.0) instead of raw iv.dict_values[interaction_tuple] dict access, which would have raised KeyError on any sample whose lookup didn't contain the requested tuple. - Pre-flight 'not found in InteractionValues lookup' guard now checks the union of lookups across all samples instead of only sample 0, so a heterogeneous list with the interaction missing only from index 0 no longer falsely rejects a valid request. - Docstring updated to describe the broadened guard. Example script (examples/visualization/plot_scatter.py) bumped from 20 to 200 explained instances and from max_order=3 to max_order=2 so the scatter distribution is meaningful while staying around ~6s end-to-end in the docs build. --- examples/visualization/plot_scatter.py | 7 ++++--- shapiq_project_topics_1.pdf | Bin 0 -> 252307 bytes src/shapiq/plot/scatter.py | 10 ++++------ 3 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 shapiq_project_topics_1.pdf diff --git a/examples/visualization/plot_scatter.py b/examples/visualization/plot_scatter.py index 581d7d1e8..1e35cef79 100644 --- a/examples/visualization/plot_scatter.py +++ b/examples/visualization/plot_scatter.py @@ -36,14 +36,15 @@ # %% # Compute Explanations for Multiple Instances # --------------------------------------------- -# We explain 20 test instances to keep the example fast. +# We explain 200 test instances so the scatter plots show a meaningful +# distribution while keeping the example fast. -x_explain = x_test[:20] +x_explain = x_test[:200] explainer = shapiq.TabularExplainer( model, data=x_test, index="FSII", - max_order=3, + max_order=2, random_state=42, ) explanations = explainer.explain_X(x_explain, budget=200) diff --git a/shapiq_project_topics_1.pdf b/shapiq_project_topics_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8658cdeafaa05a0df59ed4c1d0b54725d8b81410 GIT binary patch literal 252307 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¬V7QQiNjUyi|iq8?!cj`gAv28#>hc4qDB3)mZe!DVylj002@A-}i_ z%-&U=xUZ5gY?q{t<}h(6tSt%LY~C*Q1P7tDXXT@~)q!}HX)iDa8f9WpsMTCArfrhG zRJz#ykpg0-x#?uLA3y9^W>`~9#-wE%voBR$S7}k-_ny)->zx_{azx^93wx|A_tzMC z^7o|+Pj(wX5^yw}-40aF&*@eMHir&Vpr>I4E%Z|@@xR1{Hlz+(qwRJFFwvA)Y4WRu zqB3>b4!U)TVA=7HQhIF^$R>|BB!ej-s|S)smU)StECK!fy;JCVl2{zZih)LZ2Clm? zhSmBaR^XT1i6gSM1n!?UppNK#nFxLe6HkM-&=%O~@uGWRx%o`aOyD=*>Yxnrj^m^d?k2L( zh#v$31J$vS0_7I7aybV{)$t{nsDtXY<%8?BeTUF%D|hU7GDiA*A@{?oA-JDyIg5D1 zVRG8scF&ZKJFjXA{K}BKdm2aGZ}z*mxe^)}7*AeErPkxMn2T6K22;vrISb5r8UVYK zo6b!_ui3hsSG~IpSvKxMA@HH{0=1BksfVTU{o(ktIQ2f*G7TX-us+;&@K980#PK#x z_6dzyXrv^+xP$J2#_I^{FeOpshu`RKB+qrj;^4=;^ z2rbnH6{IT7hbZMnsavcn3r=Pyqv6imsEGjO)I^9(Virpxb}hpqcC8Uqjg-r>$vhWD zW4ZRQCYa_jb~255P2?Y$zic?|uG|ee!Q!w*+;EQ#cFLOwxg6JTLN8JgH^tpIPjil>YKeW{r?iF zjODzb_jb7HBIW`czzyK&gWe}8 z=90%wH5lmB#eg#$$oZTHu5?BMF*O`-R1FA7eVgVX&=cRwrk%s2NM4^mi`fhx`;j46 z4E0F<)YIb|0~oKxZCr292Hed26xem3R^QYvPu9`N=rlp>#{}4Qf2b|yFk$otTroN=yDSmJY-wI-o5(migmXV_(WZ*V^r3B`ngj0K|w63rYv+pcFkiKf4J3jHJ5wiU1h zZOftxSQM2pSQL#FGRo@6q}bPO-S)N~hMoV>$U;4wS0z#IR;@q3>QU8djJqDMpaOa? zd%3*4W!r7M-)^qLWq0*zRedzPZC|`6kdRS=UznILH7(}I_sIL2WKzpYiJxwjzEroGa`h^J}#h}_@lbMH>g zQoHjQLD?5lcc}p}>u_K4BR^S2LMYtmaUdJQAelt{DwD2Mbt`my9NH&Et-5^@jSz|) zr-rvN0QpQePs308x>}H6CISc|Bq+(plqK|bA?lut>mrsp#=WGTA*3Z zTdGY_CDqN*-)M0NFE)9g08_=sDkTm5c=U?t zvXi3HkkoO%XPLy<&20XLP`w$$5@8-?o2n64G(G^x%eQ7)lH`y*xXgd>3Y$?FR^w2m z;GB&GV_!nL(yh}V{M|6gJZvvtIyRr-D^L74l8zMt8Q%L&PG*N@vu`dY;XA?i#<08L z9&YJZ1}^gW1Yh@Gr#qZje_d9GXQLZTjvRI#QVktS%~@LeUBiAX5cVNsDDxTK(S@I8 zUthZ8>;WY{&q%plv5XyltPsl_?b|(F8Wv&!J+G2`AKN~!9Hx6*#BD-Kzv4yTQ}!(+ zd$rNcDD&n`Ti?RErVJ)VOI)|zEQIMu`bcOuI;@@OoY7l92YbZd?WIRL4Cfl|BGo*pCp5QETCF@nx^n7p^n8?+8O$%v9)?d$dP#A>{4a z`QPOZRP(irKn89=@>4RV<6*W-oUIb?~B(dt6!?#@{{~B(<=ewWH0aDKAg0 zV5e(kZ=-8xXr=E;%`Z1jUE(fseKj`_b(9sPVAgW_LA$J{VoM?>TP zTXX^uFcf#=JRbJ?oIv9GXxUJM!n3|+CjSDLmWo{Pci{f%On(aLPjG+X_CK)wE~)=s zaV#uU40J62z{WyDN5#xQkNa6NR5bth71zWtPtV9K_ZMzW)c|!m_^gmL2>SLwpS<{U zLIQnbvs!XV`2wJb{0g8Z_AmpXsR9`&sQ|DU|6Xx_>0N(-WBrTbKF5Dm++U3T|ExF` zS{AC${`F^ir=YWqvu`V-o})yDc)WURFRf7Hgp zz)Z#bN#`HTnCPfzXqi6y8v_*+1M~l8e`BWkFPJgT)X~uX4`#HBpUMyTN0mz6j!TU5 z;2QKH*S+Ojvv{X#=EV%Uate^WUs z;J|HAXz(AKLrq~;U<-su|E$c^c=zv(_5au$h=5RT|Bl^XTGt=!SZG=Q@$+wnf0_GB z>C)2tWl#Rc)jloF?|S}Em;2}Hs?pz@5WE(vrt1Lj;s!9_zoAV;_@U9n==*X2yMi+{ z>g!{5LxDZLl!gm86H^6$GaXv*%~c-;>_?_zQi|KRd$qg~yaxDS>*4XKQ_Ord#NTAIjrz%naU7@3M;k;bGYP0@$J3f7TUss;$@?K7JHtPMR9o7pIG#PW0`QV?Tfl<$3vNmdeA%ELiuvIzp0cye>_F?TWCDNm|1bIo#? zY%+4;jhy=4{`7s-#gNLquq7_lB1-*2ca-HE4&#EzWFlJKG>JtvzhIzTc1AYL$zneG@og)!K7dUVw1pL;vL$T4M~tknPKRde^VW%=3-rC+mx@ zwf0W#E{0#Dg*8keuQd|OZa+OGd1DmB{2;pR*%N&%xdV}EGKu^-J;UU0ZC?Og_aLC} zhD+l5u$wcn?uU)|sKD8IDlr?+kq~TgVs?nbcb+1Qpjg0gQGg#wE@g_ZMLE5L+d)FQ}uwfz4Y@Cw`SOg?r6>u)%d(?zH1 z^*LdDfz{WXk7dYul_i_=u0m3PE?U13(rMm2W6B=~E~Ko7>ra-$6I zLj+F(@xBD!14Om*cXQn%Tb_^usjhHDB>9fBJxzlrF@dOn1>uML z8fnYI_z*K=Xv8kNS}rrYJQ0|sR&2I)7KtS%g1M_OD-!<29i39Vw;vxU7F)Q@MYxZW z6#p!WA(;$Xv>qS{ZUC9>2US!838 za&hND->R`e@9U7CwxXG*t;L#M4&Ydu|HY>{m|46`L%b~RgijVUBxZmTQ|}LE#ur1-`O4S#bQ1WL4&~JPu zhjQ6o%F$3yCo@h5GD2${RZY*&vB5uylMBwcY!|=&z-5)LBR97S9m?>?1IztRccK2g zU;P~80cdkbFr-e5K8o!$GDo#s*bF9Nh5zhz_LVhz*-#kona`pAKJ8M4&>kIeZAn8@ z8d@_i(sQfQ@;;+g<5=<(DTV*g#R^j7Ojifx0sdY~4xAcY=KwR*f77=ewgmC&E8D0A zN0eTuDAPQ*FjfR|RaMLu?^JOXGNkC?CZ^HvJVd zKsvW8dNhhcpoP~=_LM1I$M*0|HD1K6zns5Lr#-vP20!qI3?_U~ZREy^Vnx_@4y?+p zZk?cO$B7Z(M}@;+DeRh}0PY44#E&S&khL-zHbk4Jh+YzK1# zZe~+o8;H9S9i!DGTT$#$u6slKDfIH|Wz8oaLTaKD?NbaZ(!#DLw`6I12d=nlj^*QP6=wn2ThBuIJwrn^E<(bmdrlztW*vOQ{fr(8EUkf588{3TE* zvIjbRTFvmbJS5k4KM|XStbG`LE;hLel8x483MPv|g?maDfz0y9V2k2%wkRqrrYou| zlqpvM4dz!LbNjKa!ag)MI^3)AUY^=_Tvm`U$`ckzEDK3k0IS7Ay%J+d87WHGA<H z`uvQD!=mEKaLt=y=I`3=OxJ-r#na!xl~C|PYWSYN_ae?rJO@5v_oNUc@BS@ni<%R@HQ=mG2Q&-so zSDhFJ%u?rEl$b7hA_48}FnT~QED#Y5PYBvOP@?>UEuAoyT8P6%)*IekWyek`TDpNi zPTQ*mGp;=qLk{`Q%qLtJr-jnD7vjdYnq9_q^lFiFu@x|Uw7-t=n z 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≫)3AE?tUq7j_Qytv3*pp&b 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%0DLyU0UC5zT{<5gR%e9lDoU3sZv%ky2hh@x zLj>&%=MSQ(W)7(|9w1D+1;|)Ar(aRNR9TSaQ09??JJUlPCXX~IDw)Y6MaV}z6cWnA z)#MVulI2u|)yyH@l858QL%T%}%p&JPdICb9;xL883)DNs*_kDms~V6&o~HpB;<8vh zKt{5OAOqvYY2qQyxCpRhUR47!2q!vp7EwLm3Qb!{IDy`LG}+9g3v|XsfF-}I8jwLa zxrp;ohi+2Pb0nN#>m!N*p%scvUeD=U&cCS!WDrgsR14q5>LDhOBjE%;2ewhI6NyA} zE5nivRt?BhD^wrB?=*}C>aL8&(|`=P^g|nupV)?j;Y!*U)qo5_NC1MIDCBMANH(Ec z34~~b%8W>wB|ohia6vR>DOn5U%!10m`2)Bb;p(mpc^PjN>RWQ~ssR`HKI%CIhLBGo zEC8q%LeCBg<@`oi&XO@#1<1%YNz}7FB$I^(fDwRmrE5T1eOO`sAfa&fy4~eY@8(JItBXY+~1PL zSB=HgYBrK49VoS-noYbnA98;L8W_&V*HPScSPjUunvKJ6Ngjo2b_O^rWIiF9!XPUh zFs}w=TFr)|j}EQ~)oe6<4hmiaUJUA6&Qz)fWLnS8g3iFRLOmM>Kt3B<00^cqoRtpK zRs%AvXTt)>!_W=&>>SLw!pZUwT`|Zq6{Sv=wKqdOI|oYuDx*@fDRUAHECn<$nxJ+t zz)HtetAMhCnoV8wqiS}#)=L*4V+H`V)@tUhi4*OGn(gItlxba1v!Qn9)1e4}ddqND zNg`2si>cLY@eBSyaoj|8)ummm1sfx)oiS47Ajb%X1f74L}4|V2%uxOo14zGnoR;6jo%AuHk_aZv5Alv!&$S7fSgvd z9pTv1YBtswJ@^DL#50%&C{s~VZh7<{s@b4_P&u7*A=PY9S)n}}LSqbL%`O0PTG7Ui z%!u={g&&VA+HiHpA*-kdR9QGHs%Yc*3nyGmgy$Gw%`O0fP|>F5e^G}v8YpTagT>C^ zYIgP?>e=x3P&~SzXCw8y;QvA3kU`e$>_5viy6Fk(jVF7prGUNOoA)jWJn8-Vj?razU zI32B^W&@SEg3An%Rfe+W=l|NB9Z(?)9PL`q1}YsdjG7>_8i&l1yk8CdN4vABzY=UT z?an60I}XDT;6R!qvdSQ9b^#FT**NEp4qMgkY|^{o)(#=#BEV8mPz{_ZJ=??aj^x%3 z^=#6+3vL61RvFHkT?FK`o}C88!)golZ0OzSDiz|4i-3xX3Cd!$)Xz(}vqAYD3dah1 zHXQHy(4z-I&v4fK7J$~XAvWP13)O7MDz^}wgK^9NYjz2s)okeh6f6nVZ1|E3kqN|A z8C=cI|8t?5O=>kvCaq>exy9xTiHr*XOJPVgHfE@1Bl`?#fRxda;Lk>2HIB2Ul!Q>^ zR+r_4l;6D{LZR_{m0uDPxmzZ&BqY<6l8{WKBqVZ21VrQTm0uDPxtoN9r^IJOaYys| zLt&n0sQQh3doYFrM8POI4<{AWA{?!04tf%M+tTbqWO-#GN4G`Z6=6|!uhM#Q=`62I z;?ZrH<}aoRv%Gxl&M4-fN2Vi~<08RQaiTCs%tn?WMKQ;jxTQMBhPk9v+l-~SrV897 z#2lgn`6%Xma#|H=j!Onh(TT*ID84Z<$GN$sM#q9V0g16&p|Y1!#1(v^_KWAVBH|U_ z6VQH2-OC0aL1Mz!lszjCsN?VQxED2iQhV(}NPs6?bJpvo_R%ZRd!;&MS!8s1d%kPsfD0FLqt$|SVN%_JZOp;>A= zl37T2+omj}Q2J91F+v!dvMDO4fXi5FC#tYj6?=1X)KAI9IcspUVW(2zN+IEd zi$Cz?QoBp7W#UHV6>wCWQtDo|#Z26(mhuY)U*b;X6>u3#sfi6fp(z@Bp%R~9S;SUZ z1zg5b9a05)tL!|(jHUQOu4ts|X^1Sd0xn}IF|n*@V%O7*rP4vcS5Pja@NwZ_Dd(`k zm#AD;RPPW1*(CN>Q3V`ju9w>WRiLK$zhn#e*d`TGjK zL}||};4+pX1si;c;=ZCR{;~+J!V0*IC0AZzPNe!9Y8>xDnXyy^STH9bF*K2iGUm&| zT#$#bheHf!HK5xQa@pX}Pt*B^$hylH(o%Q@T&ALo`M(5Nj{IEkQ~3_UGKIt}ms<`M zWz1Iw8C4g+D$7AZ$|8xBa2Uz|<0WvJiZbRag3Lt$P!7&!)Q{8>k#oqnn5igZzC6gX zRK0@ENeDG$u|!07d8C0z$ih$-FM-Qclrdi(WE3cZB*&RvqQhP>$hhTEQO)-WH`>pgG-Y`M%Agvata~i#zI9|^W{ON=!_~e za%5Tclu~afh2F1K%PD1SEzas3=9fEX3tt z?NN6-FOOPPr1s^pEdo&%BvKth%<*7KQ<~OhL>{{#LJ>1zm@BOS+At?HFm7L28qHQg zsiZh=fOsxS;Y4Nwl4fua9&KAhoFk=OJeXoR-c!+BqS^*mJi}aRE7FF!B(*JDQR;Ph zGzU>mMeQznhEg|z9L_7t!6$=m&d8Asb3zayioGqBP?u7o1?I9i$2Y?2`wBioh z(wLKw@ZFlN=n&GfFh{9@0XUCK?EsLoqSZEJV@HqSMFfjsuJjI5m`n85@M5;CrFXCm zb4lKsY(+W6WnnH0H4+X!k4_b&;%!RVrAlPf80HJ zX&P)poZtwI%~5GxsVz|jHkZZbL`57br9pCtJ)vqE(Ni3rodzl9!U|SiDMz*Yr67}- z6Is57fZ)Y#SxYjo1#(Pd7&bA-1caPc{4H&m6C8olTt&I5;l^l+BPpO33lIppJq4wik+F(2%Y39UESC?k zW1B#7i4GfH=thklO5MwbxFm;77HU?hd#WvwDEWE0Th@|OYJ)FP@>`k+OZa3jW3CPJ zqPMIif71e=?0U=zucBjdvmz@JJEbXvSAO_83)8jKq9*f^vVbZ-{G7EUoT-&8h^-JF zBm7LQ>Po#|!a_!FCIK;cuO(Bg3OF;u&*<*~IZ!(KOeuY(-c_PaCaQ@I5P4Ik^!h)+q1_N@fH+&dDujCfmSE)G;lo zSPHy?bcle*d_Y-C?wSp}MB!k`I;+B-s37`GXNi>B5!HdJ?Eb4%u2>2zxt5Vcv&dTV z=ySIGM6<}$p#EteI=C2|jb0wPrqm7-qTiYBrTC}5@Tso*Q#9I;6-A%3mJ~g?pd!uCWFg%BW64IeEU19QU?EM()XRz-JQF?^ zACS|E?|K`2iQ?XpUsr{7tuXqWwWQXml}%R8xlhTGkZ8kPqEE?^MOX#QQSVS{gozW< z5I2(1X9o(9>~dOYKgog)SxeSmH6TNLlFk~^kma)I!j}LU3t?m}sf|^DEQRC&D0W)qP_Qnm7in1EZV!V1aL&!v>iU}DPGZkevmIYZ3m26Zyqah1d zli`e;AC`o~Dy(KMgUa+MWU2!(Urla#Skf-502!K+pz8qqz382oM~ESdqEp%d9w0_# zwumbvM4z*kB*|((rgwmXEI?1i0BoK^#-)oT6|@SFQU8Hl1ZRQT0Sq!8e$HCDXIBF< zWQ34;rB^cuP)%my4E~0Az^I}u(DL>svK$~mL&%V~LRB7oHQ}g;LuN_ctOCwLuA%6R zvT3{ooN*aoNl>i@WC)P@QJg8R!Rd_409;baIH(3>XqzQkTPvL9QC#mN;Ec-vOVVr= zAfuiQ86@rC#4^OI5Nt-=ih@%j3RCDnW(1onN|!Bb2T*T!Z~)Qh7hdE5Wlnj72ynb* zt&$+ZfLnWc^hKp84J9T0VZwaifR zN){byB5TPdfF+Z+3V=Z)Lmz3NOhblBahxu|Av5C3mb}|4K$bbN@mU^z6NaZHpM z!D>r#aWw$L#w7Ar7|X*$PvpkT)7#yIP*D8;!f!19z*RG_guT26wOag6catB_>P zt&>rXlTT@N(0nMHA_o}-9o0qqgMzGt`!lXzTe66ycSDZ2_j5kTcJWblJH{w(RqHuw^=cPi>eoYk4U zO>xA>k|?N!C(cAGS;8M!Qce}lL|j4QOoM~cK8~`|agZdG6>cU0;UpI{CGRwdaRbYH-7@I$Zi*HN&{I?ftM7}3m|*#;6?H~Bb$P0H9`65oza^KK#V>1+p?(6qqNQf z)ww7|iBKKWl;E^%3f>~}p|Gq>x1lnPQcGZ2Rso2Kx6-j`xhX^jsKHElW<_906t%%8 zb{=PT*yg3)S-}?xo)ypsLWzl2I+3B&y=?G_t!Kbjde;^)wlt9C&>c>ei_;yf!wB7B z1H|99DcPNHNdYD1%5phTes*WLwWy;eu?~asP|;axHRQ_bWX@iL5ttBh-xPuoJi{We zbi%Z(tboLXue2Of@CgxUC@EZCSh`Ny;7ba4lWkNAf7PTsctWBa&w*hPr93Wvnv#tg zh&)r1^0=(1ARVLU;$HJzFoDHrjt5?xXb;k&w-C{4h8 z$;I%mx}Q$u7F(ouO-fQ*4WgV92#t7wYFsaKR`IWTj!xgy{rF@rJ^Ze~7HNODPGqss zziNZZ#4CJP&r$utQX=;V^JJGT{HvZLaxrLJy^o0I(|7e85f8?9*qU_)zB|&aray#AOn-z+C3F>xgo`GN zqG&|D1`cwNc&3~lvFeUm$&{m)(9z=F(Thp0Y&AK&NjNa^vXNJHB6I*$CLih zM1T%s>dxAg<_PbZn4_0KQAWzqq~Qv05$3qUFC+d?wBgE4PCu#3U19o)ISN#A8jII) zHIcZQNa(aB^^;n6I!9WLgbYA&fRwB0$JO-XYWi_QZlDRt4f%rBK;V>Bch(d|?O5cq zG-7Kh~!&Bf~Ftpsx6?b>%EN5^XezP1fD{8iZV*%<$C8Li$jfQ%;P|3J)+jj(+Ec+5dD+BN+TSnEvuhI z4g=QR(+H=NwdF%K<~-~j;T=h@->1uIPzTSFBQdM*Gj`Krlti`dfm)qB@+t*pt$U9M&YXU%z z5u=B1VCq}N^B^Oo$~dL^ED;-ngD!}iA2cMl;G>F=WCMiHA%=b-Nj@LhNcZ) zBmvM*ib(K>UJFemsHhWwrF=~-z6er^tMuwfMc#5Y!85S>S7m@-;>I znxdfe>&Y5sEggJCV<~xrAfA=cDug^CPmCyJ;%r=bpNu9ydAgaHqwXwE?-C;l=8Wbf z8BLiPtuAIXZ^>xkl2NppqC@P(3TCvFq0Ce@qVKGwOh%J&MsuW$rss^N=Zxl287*Zp zn!=F}tnREyUG>NZHnb+HdcV_%222yb>@ZHRtT|goi<^w>K21Mqm^G=(M#XfMCUx0@ zSB&UKXyqiMSzJa@cuF=prO8^j$iACmM8A$!LuCU;`bkrGMiaJdCn$c>57qRX(PS)} zw$U6#z4${@f}&n%%KCCmy|O8lxJtjfrrwOE-i)T+j3!#u1P9O3Y%rr~Rkm8e4OP<; z`a@Bs?6M(#l3=7{`v@_jo-W%W(1<2K)fIq76qAv4>|&0>p{&fN5lug`gjtLzn$K#o zk!7s(lh#SHO8li{5v2G@-&q?mvZRiF(qxm>WFrf_#7_#nSuG;7nvi5k4$aZ(imD@_ z5q*{BnOP+?Q?fXKuF}jitC?q3Gf!%3D|TE~>%B5@8hWxul;*2hO^|4+ujXjJii587h=y77)vTt>tfowvOh9j; z<#JXNWL9y}6!N&$4Yd?jAxkpq)U#x)4)>7(E%ArCN(O0YL=&3~KZp@UY|^1FMihxE ze=@Gpd@NAxD<%DvG+A@4KvNxcxDn{ZSr_^bg#_ge!ByI}in(c|m9N|&2ag&yvR^7) z)2~KeEJ;Vck7D79fh(@9c(!8H{ZkGuRUBFIW5tBkJ1D-Zn61*|)kaZ}%iWSvELOp+ z_K9MyYLBQLqI3$SK&rhVcLqd=z=mS4N`+TDLhT2&8x(g{8$gl2qDF&#BOo?U1=oG;@O4)Oix#lRL+dt(3zuKI4!WEHQ%h7A1 zIGLlQCgm;?Z8&O0v>C6gc$oE)7#&4bj#?c@5tpNA%TWvDD1N4`cSi|9oJ~g0fmtp$ zKb>|Zo~zbL+wG3h{j}BYC@w|~BE@{QTFPQiQBt%Vms~-c>yBD7ZLB+L(HzCH9JOqY zQu`daa4^%=a}+1)pYjN+isxuc-BFCjQHzLE#3U4or#Nak9mPMiiLNYk7~g8X(!dSwfe5!mXZoW zV_e(f+7#E8xU09Sq6$}0g|@<7wRx2do^lm+xXP#FDyrz8@`)!XQ$QQx)D}s+o!Y$A zcu;l;lmX>h zs(q~OZEbFAYui;ykG8e7sqL!OR)%&;+u7R8)>gJQvbBw^O>Avpqv%Ayt?g@NUZ=Em zt&M9>?MZD~Ys*?2*664w@1yXFlwtW@;x*MjmBFfL%UT=ODEd;f)NG{}cnX{7CM17X zJ4##BNI<6Xl&5xJNpo#UYeO0hv*i8d9)p3cu%Y~5$gY>aE0s}O z(4Nv9amJqdUA>3eW6F4jfh?)cSFR3iIcvk&SAyDCVoh7k+GzIG9`dDVPHBr-8_d4i zBWPbG;P91X>z~R3+uCH-7Bgk963zQss)b@rL8&F05^26#LuDzae5LE5SX$mknaRH5 zmvrE)xWC#Pl-MZ0OIoKRvE+Awwa`4K{(@p$DRJ61)~2zxjJ08`?P6^f`*M|2zLJ94 zCe|jgwutGx8u1*p>e?LE*08Tu-kd`za2dQPig`U2W)UJ6D^z+RD{NuCj4c+Qil8#_99fw0)~j9n;n=m6p-^XxlcU zcz8zgmQ+UZ?*6F&)UB=CjFRU17#(feW)yYmb6DibE4aI&N^R9DqZY=kBB{gefR`#N&amkysB`Z6bV_Z?4He)kNu4^MUqvX3bVJX8~z#*wF zrR`VQ5Eu7TJSd}hkhWbjiU(=SRX4)ac57D3c^Ipbcgg;Vys_^x=9>~%-q zC4RC>%ag6rFs|f#|5OgEqAgZ!u_GrNGN{(ymR95)YxVlcOCr9HQF4-;h6G06!mCZRGFeMN!9%nFUu;)rOi-ng`xyl-bYbYR_O`U zz+2!+^0Jh+KehRpRXi-Kco#KCr}_O;d0IWip>&e1Osnk;TT{-`#;457q;ZKonQ4gc zie_X6UGG$&vH4LmD3DZX02nk9<291PHF7B$$ z7_~tht)gkuP>VrD!m4c|NM9|9Qo#GC>N<@WHM|iIi2#M8o*7V`1~d*BI$|&);Q)?G z3<(Gdj1R8wF=9}C-Jv7vdyZ-xI%GJ3-t(0D;T;Ax4jC~VY1M>+x+9J}s%H48p+n{W z(s=4&L+VG@H}q<#KcOD6b-ZT#_H~_yj67xNfYUpV7}$46$~2r8X@m{a5Q->mm%qWag~As3JN-@b zvz=%jj2Mi^=HtHE4*1{(`a1DDT~E(c&k?`jUi6!X|KU&hZx+btFskvy5e*7Tzca2R z2mvY0rtbmnE}$o9)Ef{)^ak0ExI>>&$DdR`uu-Fh{&RfuNBC{j^ps@fcJ)NMVM*&pA0YMpfnA)ph#Gp|F>%+Iw&|;pR z>(gx^FT{uLMQ?|D&|3=}5v~D_=jum;{yGn6tlzEkURVn_LR~~*UGUPQ+O&-jz-b^s zICpaCAcZ@r|A-Z1`<_rE#*mjL1RecYGhB|*-^3{BzrvW4CU0GI40gItdyE3vcV^WY@|<78tZSkJ~ph?tEDwU>{PgC;(PP$GK| zU@uKdL3AEyEl->!I);1%p)9d6P?0f@sy_L(IWqO)*Mh{2YjYwB&*lji3>yA&FVaca7_e&0Ly3bqMy@h;tw*W@8xtxx z8w!f^$iAxCCb^jdmfa;e6~z#+&*5*@=%O_MRg#)QkBjfuP&K1K!&8x!s* zHkRNtq`^BWqHyZh_*tMqZ2X}-aXTXY09QeMu z<}lff^+gV)v2KVmne&7rG7cZ2FXlWtUyi+pDfht*gu6LP@7Y8T5>(i2*Yr z8|Ij)|DhwIxj!KH4cdT=H)sg#-hd_RlKVUQ9!>z!ZC)#aB5a)Q8|oBVQ}KpXsN8=r;FYj*ifaUyDE!=Mh8)Tn0c1 z!-Lti=v`;%Dp1EwKA96CjX2CXQ%N}IHq)onyBT4ylb7|8jgB3Dl3aM)x z2S`KXb`+i~as*@W;abCg0Eec*UtsMUz6>(K_<9ieaXjPHDGJ)fpNp(1bDl_8VDm&q zDI3ce`d^N;srWO9p1IF5jdUOLeI2wL)u^5233m*DcbRXX4)TjD3mIRLwCDR&g9JxS#R97!zUCD9lhqMPgNSjOKCs2xED} z9?YTXHQVRV#$lp!SdhPB(6}cO*`v<|ELn5i;9@lB8R`b3NnD#iyU0W_XcAc+#vTOB z3G?{=h2!6}g-8S#@F6pT$sSxQ5*gy}iz9N4bwmCF!xgU08U80Iy;7y3y zn6^d^89NLIm?sM3;`gKAQ2ZIFB}|}Q`0Lod#QngDjB6o~;$t+A^Vl@307I5xbt!Q& z4j=Rq<9;~mkKqqo%~&@)L!|4l`x)yS+$eQ!a_yXo}ehSMuP3ckb=R$xOct+n!;~6>APR_wZH0LGgO*xVB z!k!BS)qn*L=3{v{R`^&hZ`hLX!kKzg-n5C~zT!L)+0hvzhMR+{)Y$v^1lf&Hj5#l1 z@8=DE1?Qw;LtxCblcA0qwgDmz#`|KPp%W7N*dC<4%I!vs1zh$37Fa3__ZTyD5Of9S zJR8?y(fPHg6)?vP|1-hD--B`rxSoS7c99etqbrbsVI#slY3w6hYs3fh@bnw+3k{#q zA7C+JZ5T6s6nVt%*tLK;Z}?E)Q8o4g#*Dp?hgjwN1ILpaJ~vp?9M6DHv_XmE3T7zZ z`#6Zz@U`S!Xykk?A@um($JXL<6)7HhgI~c*!}$>4gLf(Zj5NY!{5@cBrVZUOj|Jg- z5FQ?WKU^y+uj4p?Y07zG9y#HhkAsz%^oLw;1~Z;v`t^`SVeSQNRpYtHi81H}I-!Ak zuwsJ_eBY!i)DRo{4f>jSKWK4r+(Q5ahFpLYG<;R?G8l3&kFr!_A3<+2o&lG>IZq_W z$JYohDDzs8NXX`4<@kFf#LM7S=5{T4noT-@%4Mt(-1p{~XYO-kml|t{*qE_yh=Uol zi>+$BFFE!3yFs@w_8@c%gLc8%4Lk=TaWalSIFbzb0G=4gvaI?`6U#g;`%toL?t!5HsF2>%rkts@Lnb00O4P@7cdVA9Q-{HOEAYo zQ9~RS)Fqhnj6H*Az!KokKoXTXX2k8$(MJ>;#-9tc7;A~Ff428=t>Ht)7#N@di%7v| z&w%!A%rktO&^iI3F)wfUi&1F8_X6oJoZlnuRkUl0!-4>-v2G}vHue^B5*Tj>e4=p) zyPqiFU}HIR{{~3rrB(6=Oyo55`0}S`224aUTWdiGn3I&+t=Yo)M#mH3Q?6 zzZ*;(PA}jZJkNuyEn}~u1)M>+6XgGi=Q8 z>El`>F9>5fgRfBy2H#thT5FDpMtAY&!qhcr2r+-Y2OV^7;(Hne{oFT)kdhHk##qka zFSwTT7x+buyjSAwTrMCe3B{PxJ>rw#5q4l z7%zN15au*+PlYag9%|K$XCQ6KoF_`~=@K+#Eyx=xs8pn1b%?DO@pp-dGon&&KWWQZU%!6kg8#<5qz)4GxCA? zzVN;BXJB=COck<4_u4}@5Bomd=iy62G5~*H{Uau#r=-BQk0a&@rQ7&@g9&{22LUKI88!J zG+}}B+MJiLMo6n-^S~yJJWJxw+-^khT(rQ5zlSGU4zMv(?}V4j(3{{IHf$H5)X*ak z@8&)ppx(%NM_K_K?wp1Y+vYL_ZeW9-BEyyYv~WMsY$E<{uuTnGL&=n}Zjgf}ET(*; zlzf8@V7?hJ1Nq#4fLOUnr#K+eoF|%u#NQ(W2O!54dfFN91~FsK6D8T~et91M0Fj!u z6;wS#*Q2<&@mv%Z8Tf-~V9xUl{STfmbB$28W8M$RejEpgl^eK6CAonEZ zL;T#B2Nx}$hfI6U$7#QD{~9u=@|@?Sk*UFTB#aqy8e^jSTy)(qhJ>>?%v2)F`6P|; zb;B4EWsGZ)VZz7I?Sk^Iq$$c&mV%RX85^ijPHGn;f2|Ip#0Z}e<0+=_bRMz!>@-iGv)<0&TT97Ni%C; z5CYDr-lzLS&f0*eTHD(IZccA(}1_9De{)|F1@^5dZ)H literal 0 HcmV?d00001 diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index 73574040a..88466874f 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -139,8 +139,8 @@ def scatter_plot( Raises: ValueError: If inputs are inconsistent (empty list, length mismatch, unknown feature - names or indices, an interaction tuple not present in the lookup, an out-of-tuple - ``x_feature``, or invalid numeric parameters). + names or indices, an interaction tuple absent from every sample's lookup, an + out-of-tuple ``x_feature``, or invalid numeric parameters). TypeError: If ``data`` is not a DataFrame or ndarray, or if a feature identifier has an unsupported type. @@ -183,7 +183,7 @@ def scatter_plot( interaction_tuple = _resolve_interaction( interaction, interaction_values_list, name_to_idx, n_players ) - if interaction_tuple not in interaction_values_list[0].interaction_lookup: + if not any(interaction_tuple in iv.interaction_lookup for iv in interaction_values_list): error_message = f"Interaction {interaction_tuple} not found in InteractionValues lookup." raise ValueError(error_message) @@ -203,9 +203,7 @@ def scatter_plot( x_numpy = data.to_numpy(dtype=float) if isinstance(data, pd.DataFrame) else data.astype(float) x_vals = x_numpy[:, x_idx] - y_vals = np.array( - [iv.dict_values[interaction_tuple] for iv in interaction_values_list], dtype=float - ) + y_vals = np.array([iv[interaction_tuple] for iv in interaction_values_list], dtype=float) if ax is None: _fig, ax = plt.subplots(figsize=(7, 5)) From 2b4ecddaf5cca58212e75caed1c433133870747f Mon Sep 17 00:00:00 2001 From: Maximilian Date: Sat, 25 Apr 2026 20:46:57 +0200 Subject: [PATCH 05/11] Use {index}({features}) y-label in scatter_plot The y-axis previously read 'SHAP value' for first-order interactions, which is misleading whenever the user picked a non-SV index (FSII, k-SII, STII, ...), and inconsistent with the higher-order branch's 'Interaction value: A x B' format. Replace both with a single format derived from the actual index attribute: {index}({feature_a}, {feature_b}, ...) So a first-order FSII run on MedInc reads 'FSII(MedInc)' instead of 'SHAP value', and a pair reads 'FSII(MedInc, Latitude)'. Update the existing test assertion accordingly. --- src/shapiq/plot/scatter.py | 10 ++++------ tests/shapiq/tests_unit/tests_plots/test_scatter.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index 88466874f..af6dd4bc9 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -17,7 +17,7 @@ from shapiq.interaction_values import InteractionValues, aggregate_interaction_values from .beeswarm import _get_red_blue_cmap -from .utils import abbreviate_feature_names, format_labels +from .utils import abbreviate_feature_names if TYPE_CHECKING: from matplotlib.axes import Axes @@ -269,11 +269,9 @@ def scatter_plot( ax.axhline(0, color="#999999", linestyle="-", linewidth=1, zorder=1) ax.set_xlabel(display_mapping[x_idx], fontsize=12) - if len(interaction_tuple) == 1: - ax.set_ylabel("SHAP value", fontsize=12) - else: - label = format_labels(display_mapping, interaction_tuple) - ax.set_ylabel(f"Interaction value: {label}", fontsize=12) + index_name = interaction_values_list[0].index + feature_label = ", ".join(display_mapping[f] for f in interaction_tuple) + ax.set_ylabel(f"{index_name}({feature_label})", fontsize=12) ax.spines["top"].set_visible(False) ax.spines["right"].set_visible(False) diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py index 0252e4cb3..0b075ccf7 100644 --- a/tests/shapiq/tests_unit/tests_plots/test_scatter.py +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -69,7 +69,7 @@ def test_scatter_plot_basic(mock_interaction_data): ) assert isinstance(ax, plt.Axes) assert "feature" in ax.get_xlabel().lower() or "f0" in ax.get_xlabel().lower() - assert ax.get_ylabel() == "SHAP value" + assert ax.get_ylabel() == "k-SII(F0)" plt.close("all") ax = scatter_plot( From f7c4143957de2aed4a62f597bee05e3ab29b7fd1 Mon Sep 17 00:00:00 2001 From: Maximilian Date: Sat, 25 Apr 2026 21:02:06 +0200 Subject: [PATCH 06/11] deleted pdf Signed-off-by: Maximilian --- shapiq_project_topics_1.pdf | Bin 252307 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 shapiq_project_topics_1.pdf diff --git a/shapiq_project_topics_1.pdf b/shapiq_project_topics_1.pdf deleted file mode 100644 index 8658cdeafaa05a0df59ed4c1d0b54725d8b81410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252307 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¬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 z zY6t_l3+>nR+#)`hKkC>{u+7ie47_+%egVGG>f1a3IrHM%7wAkUk3^fr^I+S^N=cF@4m^_9I3aTCP)_Eerm}Xf+HIFVVpB- z+eKV5Y*eQ&ItHo&tF$miT!*+iP}?Q{5Oc$4p^dA)yr#>iT)^w*IP8!)e{w`N4rndl zHnRfL2X!RC6*EdWgKn@r7SUe0q8-^@br5yLqMbG~deVQFibc^UT_NhWD1%zeRe>{8 z9$gaxX&GelQrrj2fc1+XzA^OV2p-NWfaqlFPWUF#cg*EyV95LN%qQ;IgEheNB&>jE;SG}+=t-lP@ zX>Ts?B8wBEUdfDy0yW)7(9N&M(Tnj(pBV4pw-Sc`z6jQS4XPZcT#U*Mo1|C}(E08`_w3zTA)EF)+{_MA0Av=dc+(A8_P%c~WnQz~z zyP2hm;R$|0HY3D)!E{df>9nBx)ktKCuQV2k9h;xjrpr0?r7?+V&oP-zJaxi*gfth! zI~)*!%dMoJJHm5>dP0_NBc6%}reV^%Q4Mh>9yzQzqdhOOni(i^R8e14T2*V`oqo}x z`wSq47mX3}BMJm(bBjRPV@r4tU&Erp#$jr_w1Kv+nZBW*Dq6o8T{8m(CaJstP+s}T zy;%IZgbHdCwFC9~l?0U2h(|GEOSMVtVxuMP>NTR_XY*3x$TRWKu>ka1d66KlF^z}X z+Sm~803dhNvVB89va=cj*CD*`G<|`8qr~Mf11G23O7Bq$(*>mMkJ|#iq7V(wO%nLR z-e>K!*&6iKx`{eHnjVDZ=3}=dsE74SI2{ zDKirL!%|Dvt@M4n4$3kBR`asrF@C%BB)9Toc=9D`UxEj=vI426AYLDEctn}(b6Df= zQX1IgFW~g=x*fYrrnyac-*E&Px#up+5(!-ZP5$Yz%-7Sn%z3Cut#lbyAw@B6wI_K%S zV2#)1T4@>WI1sd4pKh(FglPHEwqy9T4*6pjW3u6+c3{l`wyde8GFyW4aU#6pC~>3g zGSlcu*MB=1So%3UVA$IGD6KEbdK*<#-lVP;ucC4{FI1_@GMax$$+c0V}{U48c8tUN$BaU8G+Obo9lc6slVL_dcP{3N| zJaBw)MFpB;w<~9AgWj8)ErLddiW3rdx3JLlD2|dDVPh>GhhJl5kBzwBHh=Z4SADz= zMSplb9y)vs1+P=br>~vyrMvyIxAq!E$ex$(diQ)d+?4!ixIuh-IF)8+-rp)4H3z~cAaQCDZXdb7bolEYVPCx`Qh!o4+rOc-`1|F z=^;AB40dMdn_X`=Yukp#S&uP;o9O)h0v|!qScVuulHI_l)JLH?Nj}#&XM()nJ!cw! z%X97B$N59SX3H*y3AXt=VA|`{W_0Rn(1!c!NYeO;8ahS39c5z$S{3klm zy5!Vv9h03|OqDlIwM{bX))SjDyIpCZ{w9~nrjI>uLz+(ZlJcXLRGm^dA55Mulkz6r zwy9k2kI5Z3OnKRD9NRkzXiD8sTGj6zvE2_Ni8BsZ>6#zI+-y7ra}N3 zz3G@rG-BW_-pZNAO%s8Ugo_L*;$UD{nKra6NTuB0FNr>SkxyVFPBv7nNEQpK3JR?G z;%yZxD7%0Frv80FkpWmKI~-hEryM|l2q?wLF4cU3-__*#EZD9g6l558`kTB@Ve&C1 zh!8YXV8odSv>MPe1`Q3B6Esq{XEg+_E00CUHWV-gK8b~kO1DWF+9k4LU95f4cs!b`{9D<4ejG#a)R*9BXU7P)^EAFWy+t zEyM@Zi0Z!(*8Gq}6JtXji()#jp7vBQ$EPImK#6!|7;+wPM>q3NK@^h(=e1QLDhPay zTMGo?FVk^F8}UQV&)8FfRG336U^tbJE{Ob(PAY>NFRZQ(vqYsgVqK;fu6;>NlG~wO zdt+LYgS>r2>27=FUigA;lLacs5sp7%WX1!8FhAH)D7O%2!%e`WLdrO6O}1e*Tn;t{ z)Q6Rq7~Ys_W@foK;v^!wZbK=CoJ{-iFqq<~tkA?FL1!fZ;{wEzs2FAtr&O0yrbQM@ z^}AqrkDYIWiNu|m7Kkat3q&Y%CWViW(reR@)Ykl!zGIEOqgyKn;H6k|1~d80XLdU_gMj zcHy2Cbh!2S$-5SXX%DRV-sqszB<~p9JwwZZ05JnkyPujfsPqLtr`A|5Zz_B37sKkW zTQjq~l03j71}hV!{j**DLpg}jS_*Ye%VVi%J0?cH0uObml?8Y9WfB5)@?kNgBa^p$ zmt>iJ+wnRvI`<FIO3GjHV=?Sb5uT7<(Dg^WhHBC&zb!n&t1`M$=AgcWYGEgcfT#c(4 z^=gDG9ph-O8p&ZcBup}c^zGBhoy!tc@<2?!q?vPH$Qq@PF^Y%MeVx_l*AY=xv5$<{ z<0R1l$*pKxJ*oPhY%IgVNpGl}4Ps)dp$g({$G!+vxAPh&QXRzK4}VW5-6WXt#9*S% z)X{dAGLxrvHLzi>?MCR@4$wEUl^HBKAGeOZ>!fTlw$pZ#`~?M4uG{Cv`Xnn+T7sIr z52U4FdKer%j$Y%o0x7%jJ(_={6di%}Qto{z6ln~AbNAwO)~K{`5$%(JMM!tr zD$~2(`)kt?onKL(|0{zgI)9usS6}EhvFR|5E9#*MRKRXw<0EtCmln5^dGM|bX~X)x zB^Gsry1MyH=0dP$XqniB6=h3}FLLRtbpvD7=6A`Lg0v3-S3DMBLLzs*)N8Kc4uwTlI82lHaaSY#|?L(V2(nIX;k*<`~TQU%qM$MRu zfyYcjLKt2|-3^*260GAwx?s|izuI=tA*}u^hsm^UIy+u?4ML1c9pFXJZ=~-M#D8yG z%M$HBR}8KOxY;L=IP7Gc4T__yu%td6fL^U)BPcBFB5C{aAe5lie}luyMj7gSmT$F( zc0*DsLISJMCoZ;+Xc=HyMutrabc(HrudUXI=AkDDmi+i4uy={J8}hV>y&XHAE!9=; zUrHAHDz9gS*(M+>oQJD^rXJWx8&~_?>bRA-QFzuIRo1fr4vG-EDN3-WLuDQnXm)&CugsC7?h!L zg5gi61LhIV&7^hu2OA}0?J_xVe<3w}T;lNLFyAx|HwG`A^*n9Pp87U62T;^>q=AvE zUt^fVHfX>EaM>W8;QSKX>4F~5!^MzYc)t5+x;-}5ssW>c#Wq+qEvtYyx zuGX_)Zk3dM!C(5>noX`y5!a-3&|G53plGe4%kRp1T$d-XZC>Gf7Qd*0t3aHp_yi5^ z3W%i;F-=B9#y>5STHZG;kRwjj9Y98g1g(9%uo7++c};glJ6O_TAy!vX*+L(WArA_% z@2WEx@GV8I6l_Ol#^cDWPr_4tnHPva-j_5VVHH&0Q1A(Jiz(1QCiz_ZLnk*Rx7q!47PWuQHBG6ru zS*tyJblT_41@kAwa_0OS{Tbp+luy(eVoNnL_%6x8jeMhAm&xdLC~0)_mt@v%{M@@K z2~}!o*Ky=#0ld{tozZ&;s_14lY0||kD#_(84I4jpNpuDgjTE|8a^Q==miM)U_v?fq z4bK`^y+`0=;opOu2IGOmFY+wcJ}`lP8FF7VZTZvk+Uy)?;b=>V&BU`r0BI?w73){v zMP>J7rAlMn49XN@?cw|6h1#y=N04Nx1R?Dk#!#pP`&q|j-F>v>+2tj$RVCBP8Hj<) za#tjnXA0J3L|Zn79N@E^bH@B8bg5UsgeP)I>~(F{G=w?s$y4EHjF4)G9CpDqgXM(O z=bcz`+s~v(%DDpNV=4V4eyV9U=U91w*j9klq$2}Bat)YJ*>5di6}bl#6G5;8n4egky-?8wOLG6y}9beV~` z>T^k{C4yk@mfmCcmi&x?9?4QrM&IWukgAJ_2X3Z!FMU62y=DLnG0HMh*VcVI#;OFMj?7Zi@`i0SvQVJwVmOa@o5xH z&Ez!2iWtHdm~cT zY_8@$!c9E))JAB;!4T&B$1B4YkfjY7n)9p9Ni{jz7#$!0r(84vowM6?!VFa&aw}GU z4Ea{(T~P|zdbrl{jy^i7LH+NK&mpwD_Pjtd6LIXsfdr}lUZ3}o%b%Y$FP?cY%5I$4 zF~T-JRQhHGzI9ffQmB~3&@_AnmKaHaQ+;%{cr*}SydRWp?mS1 zqgPzlpo?>$bI7PHSlS8XZYGsHj&A#0{wv7tI@o$%m|Rk$u7`N8`3}bDtgxhMcu64` zD$uUKv|xB>uFf|**a$dD5?o2?u*KXV->W}MG5?QN0<`ymO(vGl z2qM#GyoBj9yve{o`x(*sUk#Vg{TJCBOF34%0UGdgN5~VT2$g<2>?s2|mIrJ98$!?M z_&DNz^=`SDOx~cp*k0#4FuPtMikbXTfl9Iy&K`H%RRGbUlKXsC);JatM~PBcDQH?5 zqKKX?wivSvlpkp}KI%g=r@<^vb~aV2csXK<Hf$=nji=# z<|jW#RC|>B>U*{shZ|+@wH1e?{4!%hm1HdL-jdGCHkYaP)?Svp4>}iy8)gQU7ekRe48K#D|Ism37q=#8Lg<{TI{FO8T)zQ;0*QQ!L;wQaaRJ2f!}N`a8}`8{=ZKJ%d(7Py!1k4}KDw^L`@ z{nI|>y_rD!Gp0iW`qj81_%)53CLFk)DXDNAVyXoO{oI4)gJQwbc7=OL;kON=(z$nv zce}HyY@*Cv=L@)*aaIYuB-Uk)j*p?+Utfupb)t%n-<-WUzq!{6BT9R_e++DIzuf?B zH^Brn#7;;#QZWJS6#^UiiPWZNLMco#^0AK75|bP*^Gw9dW$>kO`9#sN`!hn~UdaF{ zl>~nq7|#JYNCKk49(9tUspRq@7++9{@oB=p-PY+9wAjuS46;iVzg7$463Y^o1x$Go zkO8zkCo2QG@wmtfVpSg!dJG}6C6P3w2U;MZw?XKuMi_ORERpq*n#}QEM$F}z@e^K> zN8ur4_%|YMU@KxId0X3K(V|6E=+~}sRWs}kprl_l7hxD zS;Mi2WDC&GPCLOW?1+tIS%0#o6aZ_((``;*n+3jG3Jf~q2mxEmi?#&zC|&HUVw)5C zrA}iaAk;uNj1)Q@Ku0f!CJ5)*07?1i)=)WeE;V@T7}%Ru`?bdHU4_%TBFnf}&4sE$ z)z}D!+z|zHh|wi%tV~9u?r<(r{N2QAoBl8#;xRR9l4|r8J?da~50-maCr6GDj!{fr1q>PHgH4`T0n9m)Xxi^&6vunA)4 z`i*b#k<4(H)OyuYLFSy(o9^;!K*L8f14#DLJK?@g#NCP2Cg+R{rTMDSzkonfZiwm) zz8DDsK*!Q_n>B+Wy%uL!?aV0nOrJ$=$p_noZ*)N5TQ_V^rKWLgsf1t#2d^&mm(@UW zk`2 z{!+V%g68ML*rK{Wl!aYS8wQM(2Id8fT?2ZETYnw0&Kz0MyQMrOq=Q_BI+BQLqs7YS zO{4#18K@Og4T8-g0akbvhP#nuOD8Pnv1>hV{S)B8aD;aH9eC z9E_v0ra?p;(zA6^%`?^ML9-BSn|1kG#Hku9)*f^-5;$3=v%_HrV>cZgNR0;)ZEZNpZNn0`jHa-w$*E z9~tEfVk&6VcGpsn-zPz}mfaR3**lA-lfVJj!d&Gr&+VltJSbv`q#Zhm3cbGHWF1f} zoPn1oi~w?PjmUzhjk$>IvodyrWSqfmki$Y9Js`qR(t5=U<`61zpTw3&cSVQK64*r9O49_ERk~=}GUbA$tCilb} zJc5{jhvW|RYUYWbnRg2v3!P)z5IS6FL8|lDQW+cpxkNz*HyXd#I@BN{Y>t_UAoj;n zH{n4fhzJUd3pDPmhlKMJRdPuw&q&aGIq^P;H86&E1OSnT<`#E~Gj{^|ZsC^csGI|S zMQsmBKZBn8@Sw>8YSX~4EWY(k{f4o9k*WF#9UUNNJM4$VJ;Dku=p5n9+8J1Qg@->h5iG@h9u;K1S zfFVB7emTpBdJryIZk@yeQm|kpc(Wph; z2YhO>?EGKK+9wQ!TO<#}?m>+$)E<4Nz^-P0WEkoBfIC3ZlA`_Wm3LXsKIns%6H8uCdDWX_=uiLww{;=js~P$Va-zKlxF#6_)914}l|sNhyyP0cIogbh~O%3z~r zIj$Cxe2jf>xT~N=;Ng(H3 z<(Bb6pkcy>pW@oJNu|TmSG-`BpB(@mnh|7@OW-FKA7)dkuPerTER`-K{_q1;NlJ!TB2VdMV%?Kfnt{28gB4kWtasSA13=S zo7IIW4oTFLTEG=z{BeP)K@5eE)If)p^YxnWXsHPL-b*}#Y#vTDf*UE?HUevUPH>I4bPjcWuki_c$QvjsC+nH>OXwF1CPHsnFT z{TYzlNbF&X5ZwZ_e0$%O;UtvTcBVdQMtvcQ5Z}A-K*D)>V%Z(i#R8TW|JgD*ow5%2 zko;EQ?mIDPl6Ik~&CZX0Hgg>tG82t~Bdv}cGD~+(u9u%csJk}&k=K`Pj1Hg9Y&LLKZJS1Af}pLBV&JQ9^7ZJrW5#qFv_)>jHLg6~?} z=IjDtBpKuq{c-g?;G4}r26(;YKm#5b0zk|snXrq_a!}&cG4x{*O0ZJi5m>s5lcR(R4s!Jw zd(RXYF(_|~5;#6b4I;u(2VR5!?BSv4z=wk#IPo)S≫)3AE?tUq7j_Qytv3*pp&b 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%0DLyU0UC5zT{<5gR%e9lDoU3sZv%ky2hh@x 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 From 95be0389631acbb13f8e1da315fe88a3cf75407e Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Sat, 25 Apr 2026 20:08:16 +0000 Subject: [PATCH 07/11] Add changelog entry for scatter_plot https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd0eb2557..473a838e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - adds `InterventionalTreeExplainer` and `InterventionalGame` in `shapiq.tree.interventional` - fixes `InterventionalGame` for LightGBM multi-class classification - adds `KNNExplainer`, `WeightedKNNExplainer` and `ThresholdNNExplainer` for nearest neighbor models +- adds `shapiq.scatter_plot` for SHAP-style scatter (dependence) plots of interaction values, supporting both first-order and higher-order interactions [#516](https://github.com/mmschlk/shapiq/pull/516) #### Introducing ProxySHAP [#501](https://github.com/mmschlk/shapiq/pull/501) From b5a1024b7d9adbcba4f23ef76dbfa4a930268759 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Tue, 26 May 2026 11:50:16 +0000 Subject: [PATCH 08/11] Move scatter_plot entry into v1.5.0 Highlights The v1.5.0 git release is being reverted so this PR's scatter_plot addition lands in v1.5.0. Removes the v1.5.1 (unreleased) placeholder section and appends scatter_plot to v1.5.0's "Highlights of new Features". https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- CHANGELOG.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30d42bb2d..67909f3bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,5 @@ # Changelog -## v1.5.1 (unreleased) - -### Plots -- adds `shapiq.scatter_plot` for SHAP-style scatter (dependence) plots of interaction values, supporting both first-order and higher-order interactions [#516](https://github.com/mmschlk/shapiq/pull/516) - ## v1.5.0 (2026-05-22) ### Highlights of new Features @@ -15,6 +10,7 @@ - adds `LinearTreeSHAP` in `shapiq.tree.linear` for fast first-order Shapley value computation - adds `InterventionalTreeExplainer` in `shapiq.tree.interventional` - adds `KNNExplainer`, `WeightedKNNExplainer` and `ThresholdNNExplainer` for nearest neighbor models +- adds `shapiq.scatter_plot` for SHAP-style scatter (dependence) plots of interaction values, supporting both first-order and higher-order interactions [#516](https://github.com/mmschlk/shapiq/pull/516) ### Introducing ProxySHAP [#501](https://github.com/mmschlk/shapiq/pull/501), [Preprint](https://arxiv.org/abs/2605.22738) From 4591026ad60360ae7a9499fd802ad5aaa72b59a1 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Tue, 26 May 2026 12:04:26 +0000 Subject: [PATCH 09/11] Add x-axis histogram strip to scatter_plot Renders a faint histogram of the x-axis feature's distribution below the main scatter axes (SHAP-style), routed through mpl_toolkits make_axes_locatable so the optional colorbar is positioned consistently. New `hist: bool = True` parameter; pass `hist=False` for the previous clean-axis look. When the histogram is drawn, the x-axis label is placed on the histogram axes. https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- examples/visualization/plot_scatter.py | 14 ++++++ src/shapiq/plot/scatter.py | 40 +++++++++++++-- .../tests_unit/tests_plots/test_scatter.py | 50 ++++++++++++++++++- 3 files changed, 98 insertions(+), 6 deletions(-) diff --git a/examples/visualization/plot_scatter.py b/examples/visualization/plot_scatter.py index 1e35cef79..f1a68bdd3 100644 --- a/examples/visualization/plot_scatter.py +++ b/examples/visualization/plot_scatter.py @@ -110,6 +110,20 @@ feature_names=feature_names, ) +# %% +# Disable the X-axis Histogram Strip +# ----------------------------------- +# By default a faint histogram of the x-axis feature is drawn along the bottom +# (SHAP-style). Pass ``hist=False`` to hide it. + +shapiq.scatter_plot( + explanations, + x_explain, + interaction="MedInc", + feature_names=feature_names, + hist=False, +) + # %% # Custom Axis # ----------- diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index af6dd4bc9..10a9538eb 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -13,6 +13,7 @@ import matplotlib.pyplot as plt import numpy as np import pandas as pd +from mpl_toolkits.axes_grid1 import make_axes_locatable from shapiq.interaction_values import InteractionValues, aggregate_interaction_values @@ -94,6 +95,7 @@ def scatter_plot( alpha: float = 0.8, dot_size: float = 16, jitter: float = 0.0, + hist: bool = True, ax: Axes | None = None, show: bool = True, ) -> Axes | None: @@ -129,6 +131,10 @@ def scatter_plot( jitter: If positive, adds Gaussian jitter to the plotted x-values, scaled to ``jitter * std(x_vals)``. Useful for categorical or integer-valued features. Defaults to ``0.0`` (disabled). + hist: Whether to draw a faint histogram of the x-axis feature's distribution along + the bottom of the plot (SHAP-style). When enabled, the x-axis tick labels and + label are placed on the histogram strip rather than on the main scatter axes. + Defaults to ``True``. ax: ``matplotlib`` ``Axes`` object to plot on. If ``None``, a new figure and axes are created. show: Whether to call ``plt.show()`` at the end. If ``False``, returns the axes instead. @@ -217,6 +223,7 @@ def scatter_plot( x_plot = x_vals + rng.normal(0.0, jitter * std, size=x_vals.shape) n_samples = len(x_vals) + sc = None if color_idx is None: ax.scatter( x_plot, @@ -262,13 +269,36 @@ def scatter_plot( linewidth=0, rasterized=n_samples > 500, ) - cb = fig.colorbar(sc, ax=ax, aspect=80) - cb.set_label(display_mapping[color_idx], size=11, labelpad=0) - cb.ax.tick_params(labelsize=10, length=0) - cb.outline.set_visible(False) # type: ignore[union-attr] + + divider = make_axes_locatable(ax) + + valid_x_for_hist = x_vals[~np.isnan(x_vals)] + draw_hist = ( + hist + and len(valid_x_for_hist) >= 2 + and float(np.min(valid_x_for_hist)) < float(np.max(valid_x_for_hist)) + ) + hist_ax = None + if draw_hist: + hist_ax = divider.append_axes("bottom", size=0.45, pad=0.05, sharex=ax) + n_bins = min(50, max(10, len(valid_x_for_hist) // 2)) + hist_ax.hist(valid_x_for_hist, bins=n_bins, color="#aaaaaa", alpha=0.5) + hist_ax.set_yticks([]) + hist_ax.spines["top"].set_visible(False) + hist_ax.spines["right"].set_visible(False) + hist_ax.spines["left"].set_visible(False) + ax.tick_params(axis="x", labelbottom=False) + + if sc is not None and color_idx is not None: + cax = divider.append_axes("right", size="3%", pad=0.1) + cb = fig.colorbar(sc, cax=cax) + cb.set_label(display_mapping[color_idx], size=11, labelpad=0) + cb.ax.tick_params(labelsize=10, length=0) + cb.outline.set_visible(False) # type: ignore[union-attr] ax.axhline(0, color="#999999", linestyle="-", linewidth=1, zorder=1) - ax.set_xlabel(display_mapping[x_idx], fontsize=12) + xlabel_target = hist_ax if hist_ax is not None else ax + xlabel_target.set_xlabel(display_mapping[x_idx], fontsize=12) index_name = interaction_values_list[0].index feature_label = ", ".join(display_mapping[f] for f in interaction_tuple) ax.set_ylabel(f"{index_name}({feature_label})", fontsize=12) diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py index 0b075ccf7..d9cd91ad6 100644 --- a/tests/shapiq/tests_unit/tests_plots/test_scatter.py +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -65,6 +65,7 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_np, interaction=(0,), feature_names=feature_names, + hist=False, show=False, ) assert isinstance(ax, plt.Axes) @@ -77,6 +78,7 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_pd, interaction=(0,), feature_names=feature_names, + hist=False, show=False, ) assert isinstance(ax, plt.Axes) @@ -86,6 +88,7 @@ def test_scatter_plot_basic(mock_interaction_data): interaction_values_list, feature_data_np, interaction=(0,), + hist=False, show=False, ) assert ax.get_xlabel().startswith("F") @@ -110,6 +113,7 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_pd, interaction=arg, feature_names=feature_names, + hist=False, show=False, ) labels.append(ax.get_xlabel()) @@ -123,6 +127,7 @@ def test_scatter_plot_basic(mock_interaction_data): interaction=(0, 1), feature_names=feature_names, abbreviate=False, + hist=False, show=False, ) assert ax.get_xlabel() == "feature_0" @@ -137,6 +142,7 @@ def test_scatter_plot_basic(mock_interaction_data): x_feature=1, feature_names=feature_names, abbreviate=False, + hist=False, show=False, ) assert ax.get_xlabel() == "feature_1" @@ -150,6 +156,7 @@ def test_scatter_plot_basic(mock_interaction_data): x_feature="feature_1", feature_names=feature_names, abbreviate=False, + hist=False, show=False, ) assert ax.get_xlabel() == "feature_1" @@ -170,6 +177,7 @@ def test_scatter_plot_options(mock_interaction_data): color="feature_2", feature_names=feature_names, abbreviate=False, + hist=False, ax=ax, show=False, ) @@ -178,7 +186,7 @@ def test_scatter_plot_options(mock_interaction_data): assert "feature_2" in cbar_labels plt.close("all") - # color = None -> no extra colorbar axes added + # color = None, hist = False -> no extra axes added fig, ax = plt.subplots() n_axes_before = len(fig.axes) scatter_plot( @@ -187,6 +195,7 @@ def test_scatter_plot_options(mock_interaction_data): interaction=(0,), color=None, feature_names=feature_names, + hist=False, ax=ax, show=False, ) @@ -204,6 +213,7 @@ def test_scatter_plot_options(mock_interaction_data): color="feature_2", alpha=test_alpha, feature_names=feature_names, + hist=False, show=False, ) expected_nan_color = list(mcolors.to_rgba("#777777")) @@ -258,6 +268,7 @@ def test_scatter_plot_options(mock_interaction_data): interaction=(0,), feature_names=long_names, abbreviate=False, + hist=False, show=False, ) assert ax.get_xlabel() == long_names[0] @@ -270,6 +281,7 @@ def test_scatter_plot_options(mock_interaction_data): interaction=(0,), feature_names=feature_names, jitter=0.5, + hist=False, show=False, ) raw = feature_data_pd.iloc[:, 0].to_numpy() @@ -277,6 +289,42 @@ def test_scatter_plot_options(mock_interaction_data): assert np.max(np.abs(plotted - raw)) > 0 plt.close("all") + # hist = True -> adds a histogram axes below with the x-axis label + fig, ax = plt.subplots() + n_axes_before = len(fig.axes) + scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + abbreviate=False, + hist=True, + ax=ax, + show=False, + ) + assert len(fig.axes) > n_axes_before + hist_axes_labels = [a.get_xlabel() for a in fig.axes if a is not ax] + assert "feature_0" in hist_axes_labels + assert ax.get_xlabel() == "" + has_bars = any(a is not ax and len(a.patches) > 0 for a in fig.axes) + assert has_bars + plt.close("all") + + # hist = True with constant x-values -> no histogram drawn, fallback to xlabel on main ax + data_const_x = feature_data_pd.copy() + data_const_x.iloc[:, 0] = 0.5 + ax = scatter_plot( + interaction_values_list, + data_const_x, + interaction=(0,), + feature_names=feature_names, + abbreviate=False, + hist=True, + show=False, + ) + assert ax.get_xlabel() == "feature_0" + plt.close("all") + def test_scatter_plot_errors(mock_interaction_data): """Tests that scatter_plot raises informative errors for bad inputs.""" From 3d80c29f6f403fdaaa8036e4392eb80528ed9e97 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Tue, 26 May 2026 12:11:11 +0000 Subject: [PATCH 10/11] Inline scatter_plot histogram into the main x-axis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the separate sub-axes histogram with bars rendered directly on the main ax using ax.get_xaxis_transform(). The y-axis is extended downward by ~10% to reserve a band for the histogram so it doesn't overlap the scatter, and y-ticks outside the scatter region are hidden — yielding one plot with a "fancy x-axis" instead of two stacked axes, matching shap.plots.scatter. https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- src/shapiq/plot/scatter.py | 52 +++++++++------- .../tests_unit/tests_plots/test_scatter.py | 59 ++++++++++++------- 2 files changed, 67 insertions(+), 44 deletions(-) diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index 10a9538eb..73cda82b1 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -13,7 +13,6 @@ import matplotlib.pyplot as plt import numpy as np import pandas as pd -from mpl_toolkits.axes_grid1 import make_axes_locatable from shapiq.interaction_values import InteractionValues, aggregate_interaction_values @@ -132,9 +131,8 @@ def scatter_plot( ``jitter * std(x_vals)``. Useful for categorical or integer-valued features. Defaults to ``0.0`` (disabled). hist: Whether to draw a faint histogram of the x-axis feature's distribution along - the bottom of the plot (SHAP-style). When enabled, the x-axis tick labels and - label are placed on the histogram strip rather than on the main scatter axes. - Defaults to ``True``. + the bottom of the plot (SHAP-style). The bars share the main x-axis: no separate + axes is created. Defaults to ``True``. ax: ``matplotlib`` ``Axes`` object to plot on. If ``None``, a new figure and axes are created. show: Whether to call ``plt.show()`` at the end. If ``False``, returns the axes instead. @@ -270,7 +268,11 @@ def scatter_plot( rasterized=n_samples > 500, ) - divider = make_axes_locatable(ax) + if sc is not None and color_idx is not None: + cb = fig.colorbar(sc, ax=ax, aspect=80) + cb.set_label(display_mapping[color_idx], size=11, labelpad=0) + cb.ax.tick_params(labelsize=10, length=0) + cb.outline.set_visible(False) # type: ignore[union-attr] valid_x_for_hist = x_vals[~np.isnan(x_vals)] draw_hist = ( @@ -278,27 +280,33 @@ def scatter_plot( and len(valid_x_for_hist) >= 2 and float(np.min(valid_x_for_hist)) < float(np.max(valid_x_for_hist)) ) - hist_ax = None if draw_hist: - hist_ax = divider.append_axes("bottom", size=0.45, pad=0.05, sharex=ax) n_bins = min(50, max(10, len(valid_x_for_hist) // 2)) - hist_ax.hist(valid_x_for_hist, bins=n_bins, color="#aaaaaa", alpha=0.5) - hist_ax.set_yticks([]) - hist_ax.spines["top"].set_visible(False) - hist_ax.spines["right"].set_visible(False) - hist_ax.spines["left"].set_visible(False) - ax.tick_params(axis="x", labelbottom=False) - - if sc is not None and color_idx is not None: - cax = divider.append_axes("right", size="3%", pad=0.1) - cb = fig.colorbar(sc, cax=cax) - cb.set_label(display_mapping[color_idx], size=11, labelpad=0) - cb.ax.tick_params(labelsize=10, length=0) - cb.outline.set_visible(False) # type: ignore[union-attr] + counts, bin_edges = np.histogram(valid_x_for_hist, bins=n_bins) + if counts.max() > 0: + hist_band = 0.10 # bottom 10% of the plot reserved for the histogram + ymin, ymax = ax.get_ylim() + new_ymin = ymin - hist_band * (ymax - ymin) / (1 - hist_band) + rel_heights = (counts / counts.max()) * hist_band + widths = np.diff(bin_edges) + ax.bar( + bin_edges[:-1], + rel_heights, + width=widths, + bottom=0.0, + align="edge", + color="#aaaaaa", + alpha=0.4, + edgecolor="none", + zorder=-2, + transform=ax.get_xaxis_transform(), + ) + visible_ticks = [t for t in ax.get_yticks() if ymin - 1e-9 <= t <= ymax + 1e-9] + ax.set_ylim(new_ymin, ymax) + ax.set_yticks(visible_ticks) ax.axhline(0, color="#999999", linestyle="-", linewidth=1, zorder=1) - xlabel_target = hist_ax if hist_ax is not None else ax - xlabel_target.set_xlabel(display_mapping[x_idx], fontsize=12) + ax.set_xlabel(display_mapping[x_idx], fontsize=12) index_name = interaction_values_list[0].index feature_label = ", ".join(display_mapping[f] for f in interaction_tuple) ax.set_ylabel(f"{index_name}({feature_label})", fontsize=12) diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py index d9cd91ad6..28e82a1a6 100644 --- a/tests/shapiq/tests_unit/tests_plots/test_scatter.py +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -65,7 +65,6 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_np, interaction=(0,), feature_names=feature_names, - hist=False, show=False, ) assert isinstance(ax, plt.Axes) @@ -78,7 +77,6 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_pd, interaction=(0,), feature_names=feature_names, - hist=False, show=False, ) assert isinstance(ax, plt.Axes) @@ -88,7 +86,6 @@ def test_scatter_plot_basic(mock_interaction_data): interaction_values_list, feature_data_np, interaction=(0,), - hist=False, show=False, ) assert ax.get_xlabel().startswith("F") @@ -113,7 +110,6 @@ def test_scatter_plot_basic(mock_interaction_data): feature_data_pd, interaction=arg, feature_names=feature_names, - hist=False, show=False, ) labels.append(ax.get_xlabel()) @@ -127,7 +123,6 @@ def test_scatter_plot_basic(mock_interaction_data): interaction=(0, 1), feature_names=feature_names, abbreviate=False, - hist=False, show=False, ) assert ax.get_xlabel() == "feature_0" @@ -142,7 +137,6 @@ def test_scatter_plot_basic(mock_interaction_data): x_feature=1, feature_names=feature_names, abbreviate=False, - hist=False, show=False, ) assert ax.get_xlabel() == "feature_1" @@ -156,7 +150,6 @@ def test_scatter_plot_basic(mock_interaction_data): x_feature="feature_1", feature_names=feature_names, abbreviate=False, - hist=False, show=False, ) assert ax.get_xlabel() == "feature_1" @@ -177,7 +170,6 @@ def test_scatter_plot_options(mock_interaction_data): color="feature_2", feature_names=feature_names, abbreviate=False, - hist=False, ax=ax, show=False, ) @@ -186,7 +178,7 @@ def test_scatter_plot_options(mock_interaction_data): assert "feature_2" in cbar_labels plt.close("all") - # color = None, hist = False -> no extra axes added + # color = None -> no extra colorbar axes added (histogram lives on the main ax) fig, ax = plt.subplots() n_axes_before = len(fig.axes) scatter_plot( @@ -195,7 +187,6 @@ def test_scatter_plot_options(mock_interaction_data): interaction=(0,), color=None, feature_names=feature_names, - hist=False, ax=ax, show=False, ) @@ -213,7 +204,6 @@ def test_scatter_plot_options(mock_interaction_data): color="feature_2", alpha=test_alpha, feature_names=feature_names, - hist=False, show=False, ) expected_nan_color = list(mcolors.to_rgba("#777777")) @@ -268,7 +258,6 @@ def test_scatter_plot_options(mock_interaction_data): interaction=(0,), feature_names=long_names, abbreviate=False, - hist=False, show=False, ) assert ax.get_xlabel() == long_names[0] @@ -289,7 +278,7 @@ def test_scatter_plot_options(mock_interaction_data): assert np.max(np.abs(plotted - raw)) > 0 plt.close("all") - # hist = True -> adds a histogram axes below with the x-axis label + # hist = True -> draws histogram bars on the main ax and extends y-axis downward fig, ax = plt.subplots() n_axes_before = len(fig.axes) scatter_plot( @@ -302,18 +291,19 @@ def test_scatter_plot_options(mock_interaction_data): ax=ax, show=False, ) - assert len(fig.axes) > n_axes_before - hist_axes_labels = [a.get_xlabel() for a in fig.axes if a is not ax] - assert "feature_0" in hist_axes_labels - assert ax.get_xlabel() == "" - has_bars = any(a is not ax and len(a.patches) > 0 for a in fig.axes) - assert has_bars + # no extra axes created (histogram lives on the same ax) + assert len(fig.axes) == n_axes_before + # xlabel stays on the main ax + assert ax.get_xlabel() == "feature_0" + # bar patches were added (matplotlib stores Rectangle patches for ax.bar) + rect_patches = [p for p in ax.patches if type(p).__name__ == "Rectangle"] + assert len(rect_patches) > 0 plt.close("all") - # hist = True with constant x-values -> no histogram drawn, fallback to xlabel on main ax + # hist = True with constant x-values -> no histogram drawn, no y-axis extension data_const_x = feature_data_pd.copy() data_const_x.iloc[:, 0] = 0.5 - ax = scatter_plot( + ax_const = scatter_plot( interaction_values_list, data_const_x, interaction=(0,), @@ -322,8 +312,33 @@ def test_scatter_plot_options(mock_interaction_data): hist=True, show=False, ) - assert ax.get_xlabel() == "feature_0" + assert ax_const.get_xlabel() == "feature_0" + rect_patches = [p for p in ax_const.patches if type(p).__name__ == "Rectangle"] + assert len(rect_patches) == 0 + plt.close("all") + + # hist = True vs hist = False -> hist=True yields a lower ymin + ax_with = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + hist=True, + show=False, + ) + ymin_with = ax_with.get_ylim()[0] + plt.close("all") + ax_without = scatter_plot( + interaction_values_list, + feature_data_pd, + interaction=(0,), + feature_names=feature_names, + hist=False, + show=False, + ) + ymin_without = ax_without.get_ylim()[0] plt.close("all") + assert ymin_with < ymin_without def test_scatter_plot_errors(mock_interaction_data): From 6f733050b6be467e6523f40e8e45dd086d5dbda3 Mon Sep 17 00:00:00 2001 From: Maximilian Muschalik Date: Tue, 26 May 2026 12:15:41 +0000 Subject: [PATCH 11/11] Draw scatter_plot histogram behind dots without extending y-axis Removes the y-axis extension when drawing the histogram so the y-limits match the hist=False rendering exactly. The faint bars now overlay the bottom band of the existing plot area behind the scatter (zorder=-2), matching the requested "fancy x-axis" look. https://claude.ai/code/session_01BebyCFsKiVH49mUQejbMCd --- src/shapiq/plot/scatter.py | 7 +------ .../tests_unit/tests_plots/test_scatter.py | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/shapiq/plot/scatter.py b/src/shapiq/plot/scatter.py index 73cda82b1..9a2222c8b 100644 --- a/src/shapiq/plot/scatter.py +++ b/src/shapiq/plot/scatter.py @@ -284,9 +284,7 @@ def scatter_plot( n_bins = min(50, max(10, len(valid_x_for_hist) // 2)) counts, bin_edges = np.histogram(valid_x_for_hist, bins=n_bins) if counts.max() > 0: - hist_band = 0.10 # bottom 10% of the plot reserved for the histogram - ymin, ymax = ax.get_ylim() - new_ymin = ymin - hist_band * (ymax - ymin) / (1 - hist_band) + hist_band = 0.10 # bottom 10% of the existing plot area rel_heights = (counts / counts.max()) * hist_band widths = np.diff(bin_edges) ax.bar( @@ -301,9 +299,6 @@ def scatter_plot( zorder=-2, transform=ax.get_xaxis_transform(), ) - visible_ticks = [t for t in ax.get_yticks() if ymin - 1e-9 <= t <= ymax + 1e-9] - ax.set_ylim(new_ymin, ymax) - ax.set_yticks(visible_ticks) ax.axhline(0, color="#999999", linestyle="-", linewidth=1, zorder=1) ax.set_xlabel(display_mapping[x_idx], fontsize=12) diff --git a/tests/shapiq/tests_unit/tests_plots/test_scatter.py b/tests/shapiq/tests_unit/tests_plots/test_scatter.py index 28e82a1a6..cb8851c49 100644 --- a/tests/shapiq/tests_unit/tests_plots/test_scatter.py +++ b/tests/shapiq/tests_unit/tests_plots/test_scatter.py @@ -278,7 +278,7 @@ def test_scatter_plot_options(mock_interaction_data): assert np.max(np.abs(plotted - raw)) > 0 plt.close("all") - # hist = True -> draws histogram bars on the main ax and extends y-axis downward + # hist = True -> draws histogram bars on the main ax (no extra axes, no y-extension) fig, ax = plt.subplots() n_axes_before = len(fig.axes) scatter_plot( @@ -291,16 +291,17 @@ def test_scatter_plot_options(mock_interaction_data): ax=ax, show=False, ) - # no extra axes created (histogram lives on the same ax) assert len(fig.axes) == n_axes_before - # xlabel stays on the main ax assert ax.get_xlabel() == "feature_0" - # bar patches were added (matplotlib stores Rectangle patches for ax.bar) rect_patches = [p for p in ax.patches if type(p).__name__ == "Rectangle"] assert len(rect_patches) > 0 + # histogram bars sit behind the scatter (lower zorder) + bar_zorder = min(p.get_zorder() for p in rect_patches) + scatter_zorder = min(c.get_zorder() for c in ax.collections) + assert bar_zorder < scatter_zorder plt.close("all") - # hist = True with constant x-values -> no histogram drawn, no y-axis extension + # hist = True with constant x-values -> no histogram drawn data_const_x = feature_data_pd.copy() data_const_x.iloc[:, 0] = 0.5 ax_const = scatter_plot( @@ -317,7 +318,7 @@ def test_scatter_plot_options(mock_interaction_data): assert len(rect_patches) == 0 plt.close("all") - # hist = True vs hist = False -> hist=True yields a lower ymin + # hist = True does not extend the y-axis (limits identical to hist = False) ax_with = scatter_plot( interaction_values_list, feature_data_pd, @@ -326,7 +327,7 @@ def test_scatter_plot_options(mock_interaction_data): hist=True, show=False, ) - ymin_with = ax_with.get_ylim()[0] + ylim_with = ax_with.get_ylim() plt.close("all") ax_without = scatter_plot( interaction_values_list, @@ -336,9 +337,10 @@ def test_scatter_plot_options(mock_interaction_data): hist=False, show=False, ) - ymin_without = ax_without.get_ylim()[0] + ylim_without = ax_without.get_ylim() plt.close("all") - assert ymin_with < ymin_without + assert np.isclose(ylim_with[0], ylim_without[0]) + assert np.isclose(ylim_with[1], ylim_without[1]) def test_scatter_plot_errors(mock_interaction_data):