Grandscatter
Interactive multidimensional scatterplot widget for Jupyter notebooks. Rotate projection axes by dragging to explore high-dimensional point clouds with correct linear projections at all times.
Built on anywidget and WebGL.
Installation
pip install grandscatter
Quick start
from grandscatter import Scatter
import pandas as pd
df = pd.read_csv("my_data.csv")
widget = Scatter(
df,
axis_fields=["x1", "x2", "x3", "x4", "x5"],
label_field="category",
label_colors={"A": "#e23838", "B": "#2196f3", "C": "#4caf50"},
)
widget
Features
- Interactive axis rotation -- drag axis handles to rotate the projection and explore your data from any angle.
- Orthogonal projections -- the projection matrix is always kept orthonormal, ensuring geometrically correct linear projections.
- Perspective and orthographic modes -- switch between projection types on the fly.
- WebGL rendering -- fast, anti-aliased point rendering with depth sorting.
- Categorical legend -- click legend items to highlight categories.
- Live trait sync -- update properties like
projection,axis_length,view_angle, andbase_point_sizefrom Python and see changes reflected immediately.
API
Scatter(df, axis_fields, label_field, label_colors, **kwargs)
| Parameter | Type | Description |
|---|---|---|
df |
pd.DataFrame |
Input data |
axis_fields |
list[str] |
Column names to use as projection dimensions |
label_field |
str |
Column name for categorical labels |
label_colors |
dict[str, str] or list[str] |
Mapping of category names to hex colors, or a list of colors in category order |
projection |
str |
"orthographic" (default) or "perspective" |
axis_length |
float or None |
Length of axis lines (None for auto) |
camera_z |
float or None |
Camera z-position for perspective mode |
view_angle |
float |
Field of view in degrees (default 45) |
base_point_size |
float |
Point radius in pixels (default 6) |
All keyword parameters are traitlets and can be updated after creation:
widget.projection = "perspective"
widget.base_point_size = 4
widget.view_angle = 90
License
MIT
Metadata
Release files for grandscatter 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| grandscatter-0.3.1.tar.gz | 70.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grandscatter-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 140.6 kB
Release files / grandscatter-0.3.1.tar.gz
| Download URL | grandscatter-0.3.1.tar.gz |
|---|---|
| Size | 70.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4d5480f6b61b5e141ac7fd084e5b7c4e5ff8458ec8199dd481cf8a01d9a9e4f
|
|
BLAKE2b-256 checksum How to use checksums |
1ea6c8125a2a566f167a3bc30b1d9d3b8305728a80055a09358948879782b975
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency logRelease files / grandscatter-0.3.1-py3-none-any.whl
| Download URL | grandscatter-0.3.1-py3-none-any.whl |
|---|---|
| Size | 70.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c48e20598685693a4870f6309872d2d87a9efe7f13b445612585a03b4abda270
|
|
BLAKE2b-256 checksum How to use checksums |
18ef99bbfaab3b0fb40c5ff16eefe8c30b13ffd2bd5fa8462808949382d8e24b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.
Transparency log