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.2.1.tar.gz (69.7 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.2.1-py3-none-any.whl (70.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for grandscatter-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2658ce744a122024a947e83dfd3b18b475017236189be4abdb0bc475699709ee
MD5 97d9a6d39a8e5916ed3aa1c3ea700f75
BLAKE2b-256 49532327bcb06e93c314834b65892e180b50549ddaf1a5b35b68cf834795dbaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for grandscatter-0.2.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.2.1-py3-none-any.whl.

File metadata

  • Download URL: grandscatter-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 70.2 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 379d7141f7034d258119d9a10e11ddc7077cca79b02717fed4d2c109f987c6bb
MD5 979e87b668828f7025ad80f54a23f546
BLAKE2b-256 31362c0f81595bf36461fcef6a82f842878366a8cd973b7f50dbbe22dc91034d

See more details on using hashes here.

Provenance

The following attestation bundles were made for grandscatter-0.2.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