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.0.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.0-py3-none-any.whl (70.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grandscatter-0.3.0.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.0.tar.gz
Algorithm Hash digest
SHA256 d49725b63b18a542779ac7d882ce10a2456d72eeade42d6c17152cdb6a103408
MD5 d292ca4e5d95412b0315a726ef624692
BLAKE2b-256 8c075603a85973f37c27cb18cebeafbfc14972f49cd2b642e919e906eaa06339

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: grandscatter-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 70.6 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a13f16612919ac16471cab7c9fc11dbd40f7011b8ebc1c6e7ecabf2d08bb21d7
MD5 46ac1979def65628d46f4523ffd10433
BLAKE2b-256 20aa8b21a7f9a8ad635c377dbc3cc2f825074f28ab670b9b5d93f73779748a70

See more details on using hashes here.

Provenance

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