Skip to main content

Observable Plot as Jupyter widget

Reason this release was yanked:

Faulty packaging

Project description

pyobsplot

PyPI Tests Documentation

pyobsplot allows to use Observable Plot to create charts in Jupyter notebooks. Plots are produced as widgets from Python code with a syntax as close as possible to the JavaScript one.

It allows to do things like :

import polars as pl
from pyobsplot import Obsplot, Plot

penguins = pl.read_csv("data/penguins.csv")

Obsplot({
    "grid": True,
    "color": {"legend": True},
    "marks": [
        Plot.dot(
            penguins, 
            {"x": "flipper_length_mm", "y": "body_mass_g", "fill": "species"}
        ),
        Plot.density(
            penguins, 
            {"x": "flipper_length_mm", "y": "body_mass_g", "stroke": "species"}
        )
    ]
})

Sample plot screenshot

Installation and usage

Warning: this project is at a very early stage. There will be bugs, and please take a look at the limitations listed below.

pyobsplot can be installed with pip:

pip install pyobsplot

For usage instructions, see the documentation website:

Features and limitations

Features:

  • Syntax as close as possible to the JavaScript one
  • Pandas and polars DataFrame and Series objects are serialized using Arrow IPC format for improved speed and data type conversions
  • Works offline, no iframe or dependency to Observable runtime
  • Caching mechanism of data objects if they are used several times in the same plot
  • Custom JavaScript code can be passed as strings with the js method
  • Python date and datetime objects are automatically converted to JavaScript Date objects
  • Plots can be defined with a dictionary, a call to a Plot mark function, or with kwargs. See alternative syntaxes.
  • Works with Jupyter notebooks and Quarto HTML documents

Limitations:

  • When using notebooks inside VSCode, the cells output states are not saved between sessions. So when a notebook is closed and reopened, plots have to be recomputed to be displayed. This is currently a VSCode limitation.
  • Doesn't work in Quarto in formats other than HTML.
  • When exporting to HTML, the resulting documents can be quite big as each plot is embedded as a widget, with the data and the code needed to generate it (there is currently no way to embed SVG or HTML directly).
  • Some faceting operations produce warnings when used as top-level faceting (but the plots should be fine). This doesn't happen when you using mark-level faceting (with the fx and fy channels).

Credits

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

pyobsplot-0.1.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

pyobsplot-0.1.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file pyobsplot-0.1.2.tar.gz.

File metadata

  • Download URL: pyobsplot-0.1.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.6 Linux/5.19.0-35-generic

File hashes

Hashes for pyobsplot-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9d09c3a35476c22772223707495a73fa46acfffabd86b7ddffd2fdd97d80f6b3
MD5 5f89753e27de09fb96aeb178313e3e00
BLAKE2b-256 589432cae6eb2a9d1287f24b1c3b822ff841d3c91a28512430952b53207e52e5

See more details on using hashes here.

File details

Details for the file pyobsplot-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pyobsplot-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.6 Linux/5.19.0-35-generic

File hashes

Hashes for pyobsplot-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6105ead47209400cd006c0292b66f90abba70bf6d0e02942f1e9d64542db28c9
MD5 fc09cb7a1576d1bca0ad77a25e76dfdb
BLAKE2b-256 e4bc9cff86874454d85b4097ce13ce09ef23f4e31268a3ef3db32398b9c3bbd3

See more details on using hashes here.

Supported by

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