Skip to main content

Interactive multidimensional scatterplot Jupyter widget

Project description

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, and base_point_size from 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grandscatter-0.3.1.tar.gz (70.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grandscatter-0.3.1-py3-none-any.whl (70.5 kB view details)

Uploaded Python 3

File details

Details for the file grandscatter-0.3.1.tar.gz.

File metadata

  • Download URL: grandscatter-0.3.1.tar.gz
  • Upload date:
  • Size: 70.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for grandscatter-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f4d5480f6b61b5e141ac7fd084e5b7c4e5ff8458ec8199dd481cf8a01d9a9e4f
MD5 717e5365bc3912bb03f20c297d19e1a2
BLAKE2b-256 1ea6c8125a2a566f167a3bc30b1d9d3b8305728a80055a09358948879782b975

See more details on using hashes here.

Provenance

The following attestation bundles were made for grandscatter-0.3.1.tar.gz:

Publisher: publish-pypi.yml on abdenlab/grandscatter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file grandscatter-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: grandscatter-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 70.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for grandscatter-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c48e20598685693a4870f6309872d2d87a9efe7f13b445612585a03b4abda270
MD5 5014e36a4fbf9884aad5482589a41d4e
BLAKE2b-256 18ef99bbfaab3b0fb40c5ff16eefe8c30b13ffd2bd5fa8462808949382d8e24b

See more details on using hashes here.

Provenance

The following attestation bundles were made for grandscatter-0.3.1-py3-none-any.whl:

Publisher: publish-pypi.yml on abdenlab/grandscatter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page