Jupyter-scatter

Latest version: v0.20.0

Safety actively analyzes 701967 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 9

0.12.0

- Add support for referencing points by the Pandas DataFrame's index via `Scatter(data_use_index=True)` or `scatter.data(use_index=True)`. This is useful for synchronizing the selection or filtering of two Scatter instances that operate on different data frames with point correspondences. ([62](https://github.com/flekschas/jupyter-scatter/issues/62)

py
import jscatter
import numpy as np
import pandas as pd

df1 = pd.DataFrame(
data=np.random.rand(16, 2),
index=[chr(65 + x) for x in range(16)],
columns=['x', 'y']
)
df2 = pd.DataFrame(
data=np.random.rand(8, 2),
index=[chr(76 - x) for x in range(8)],
columns=['x', 'y']
)

s1 = jscatter.Scatter(data=df1, data_use_index=True, x='x', y='y', x_scale=[0, 2], y_scale=[0, 1])
s2 = jscatter.Scatter(data=df2, data_use_index=True, x='x', y='y', x_scale=[-1, 1], y_scale=[0, 1])

def on_selection_change(change):
s2.selection(s1.selection())

s1.widget.observe(on_selection_change, names='selection')

jscatter.compose([s1, s2])


https://user-images.githubusercontent.com/932103/223899982-d2837c4d-f486-4f33-af22-cf3866c4983e.mp4

- Avoid unregistering all observers when calling `jscatter.compose()` such that external observers remain registered
- Fix undefined `this` in codec preventing the `scatter.selection()` from working correctly ([66](https://github.com/flekschas/jupyter-scatter/pull/66))

0.11.0

- Add `scatter.filter([0, 1, 2])` for filtering down points. Filtering down to a specific subset of points is much faster than than updating the underlying data ([61](https://github.com/flekschas/jupyter-scatter/issues/61))
- Add `scatter.data(df)` to allow rendering new data points without having to re-initialize the scatter instance ([61](https://github.com/flekschas/jupyter-scatter/issues/61))
- Add the ability to automatically zoom to filtered points via `Scatter(zoom_on_filter=True)` or `scatter.zoom(on_filter=True)`
- Add lasso on long press and make it the default. The behavior can be changed via `Scatter(lasso_on_long_press=False)` or `scatter.lasso(on_long_press=False)`
- Updated `regl-scatterplot` to `v1.6`

0.10.0

- Add support for automatic zooming to selected points via `scatter.zoom(on_selection=True)`
- Fix view synchronization issue
- Add `remove()` to the JS widget to ensure that the scatterplot is destroyed in ipywidgets `v8`.

0.9.0

- Add support for animated zooming to a set of points via `scatter.zoom(pointIndices)` ([49](https://github.com/flekschas/jupyter-scatter/issues/49))
- Bump regl-scatterplot to `v1.4.1`
- Add support for VSCode and Colab ([37](https://github.com/flekschas/jupyter-scatter/issues/37))
- Fix serving of numpy data for JS client. Use consistent serialization object between JS and Python.

0.8.0

- Add support for end labeling of continuous data encoding via a new `labeling` argument of `color()`, `opacity()`, `size()`, `connection_color()`, `connection_opacity()`, and `connection_size()`. ([46](https://github.com/flekschas/jupyter-scatter/pull/46))
- Fix the incorrect size legend when the size map is reversed ([47](https://github.com/flekschas/jupyter-scatter/issues/47))

0.7.4

- Adjust widget to be compatible with ipywidgets `v8` and jupyterlab-widgets `v3` ([39]((https://github.com/flekschas/jupyter-scatter/issues/39)))

Page 5 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.