Skip to content

Commit 62814b4

Browse files
spec: add scatter-matrix-interactive specification (#3605)
## New Specification: `scatter-matrix-interactive` Related to #3604 --- ### specification.md # scatter-matrix-interactive: Interactive Scatter Plot Matrix (SPLOM) ## Description An interactive scatter plot matrix (SPLOM) for exploring relationships between multiple variables with full interactivity. Users can brush to select points in one subplot and see corresponding points highlighted across all other subplots, enabling discovery of patterns that span multiple dimensions. Supports zooming, panning, and linked selection across the entire matrix, making it a powerful tool for multivariate exploratory data analysis. ## Applications - Interactive exploration of multivariate datasets where analysts brush regions to identify clusters and correlations across multiple variable pairs simultaneously - Feature engineering in machine learning workflows where data scientists interactively select subgroups to understand their distribution across all features - Quality control analysis where engineers select outlier regions in one measurement and instantly see how those points behave across all other measurements ## Data - `variables` (list of numeric columns) - Multiple continuous variables to compare pairwise - Variables: 3-5 recommended for usability (grid grows quadratically) - Size: 50-500 points recommended for responsive interactions - Example: Iris dataset, mtcars, or similar multivariate numeric data ## Notes - Brushing/selection in any subplot must highlight corresponding points in all other subplots - Support for box selection or lasso selection across scatter plots - Diagonal cells should show univariate distributions (histograms or KDE) that update or highlight based on selection - Include zoom and pan functionality for detailed inspection - Unselected points should be visually de-emphasized (reduced opacity or gray) - Provide a clear way to reset/clear selection - Use consistent color encoding across all subplots - Libraries without native linked selection (matplotlib, seaborn, plotnine) may need alternative approaches or should note limitations - Interactive libraries (Plotly, Bokeh, Altair) should leverage their built-in linked brushing capabilities --- **Next:** Add `approved` label to the issue to merge this PR. --- :robot: *[spec-create workflow](https://github.com/MarkusNeusinger/pyplots/actions/runs/20870784964)* Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 76e8e9d commit 62814b4

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# scatter-matrix-interactive: Interactive Scatter Plot Matrix (SPLOM)
2+
3+
## Description
4+
5+
An interactive scatter plot matrix (SPLOM) for exploring relationships between multiple variables with full interactivity. Users can brush to select points in one subplot and see corresponding points highlighted across all other subplots, enabling discovery of patterns that span multiple dimensions. Supports zooming, panning, and linked selection across the entire matrix, making it a powerful tool for multivariate exploratory data analysis.
6+
7+
## Applications
8+
9+
- Interactive exploration of multivariate datasets where analysts brush regions to identify clusters and correlations across multiple variable pairs simultaneously
10+
- Feature engineering in machine learning workflows where data scientists interactively select subgroups to understand their distribution across all features
11+
- Quality control analysis where engineers select outlier regions in one measurement and instantly see how those points behave across all other measurements
12+
13+
## Data
14+
15+
- `variables` (list of numeric columns) - Multiple continuous variables to compare pairwise
16+
- Variables: 3-5 recommended for usability (grid grows quadratically)
17+
- Size: 50-500 points recommended for responsive interactions
18+
- Example: Iris dataset, mtcars, or similar multivariate numeric data
19+
20+
## Notes
21+
22+
- Brushing/selection in any subplot must highlight corresponding points in all other subplots
23+
- Support for box selection or lasso selection across scatter plots
24+
- Diagonal cells should show univariate distributions (histograms or KDE) that update or highlight based on selection
25+
- Include zoom and pan functionality for detailed inspection
26+
- Unselected points should be visually de-emphasized (reduced opacity or gray)
27+
- Provide a clear way to reset/clear selection
28+
- Use consistent color encoding across all subplots
29+
- Libraries without native linked selection (matplotlib, seaborn, plotnine) may need alternative approaches or should note limitations
30+
- Interactive libraries (Plotly, Bokeh, Altair) should leverage their built-in linked brushing capabilities
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Specification-level metadata for scatter-matrix-interactive
2+
# Auto-synced to PostgreSQL on push to main
3+
4+
spec_id: scatter-matrix-interactive
5+
title: Interactive Scatter Plot Matrix (SPLOM)
6+
7+
# Specification tracking
8+
created: 2026-01-10T01:47:09Z
9+
updated: null
10+
issue: 3604
11+
suggested: MarkusNeusinger
12+
13+
# Classification tags (applies to all library implementations)
14+
# See docs/reference/tagging-system.md for detailed guidelines
15+
tags:
16+
plot_type:
17+
- scatter
18+
- matrix
19+
- pairplot
20+
data_type:
21+
- numeric
22+
- continuous
23+
- multivariate
24+
domain:
25+
- general
26+
- statistics
27+
- research
28+
features:
29+
- interactive
30+
- brushing
31+
- linked-views
32+
- correlation
33+
- exploratory

0 commit comments

Comments
 (0)