Skip to main content

Observable Plot in Jupyter notebooks and Quarto documents

Project description

pyobsplot

PyPI npm Tests Documentation Open In Colab

pyobsplot allows to use Observable Plot to create charts in Jupyter notebooks, VSCode notebooks, Google Colab and Quarto documents. Plots are created 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 Plot

penguins = pl.read_csv("https://github.com/juba/pyobsplot/raw/main/doc/data/penguins.csv")

Plot.plot({
    "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 an early stage.

pyobsplot can be installed with pip:

pip install pyobsplot

For usage instructions, see the documentation website:

If you just want to try this package without installing it on your computer, you can open an introduction notebook in Google Colab:

Features and limitations

Features:

  • Syntax as close as possible to the JavaScript one
  • Two renderers available: widget, which generates plots as Jupyter widgets, and jsdom, which generates SVG or HTML outputs
  • Pandas and polars DataFrame and Series objects are serialized using Arrow IPC format for improved speed and better 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
  • Works with Jupyter notebooks and Quarto HTML documents. Plots without legends are also supported in PDF and docx outputs with the jsdom renderer.

Limitations:

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.3.6.tar.gz (291.2 kB view details)

Uploaded Source

Built Distribution

pyobsplot-0.3.6-py3-none-any.whl (293.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pyobsplot-0.3.6.tar.gz
Algorithm Hash digest
SHA256 428a52edd64909f8931eac4a3243ac8664d9ab7ddc4775e2dbd2e44aad6a85e2
MD5 5f471073f1cdc29088da3e8cb63cb84a
BLAKE2b-256 c009dba17a4d002be3a7c0f695736b6dbecf1e096adefd72a153b3017377db3f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyobsplot-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 423f0bf24d7472382a6cb3e1f2205990cd2e6328f22500c3ddc11bfc81c355bc
MD5 9abed01e7bdedc9dbe9acaf8f207c0ab
BLAKE2b-256 d6c4852da8d963d1a699f58259688014e3084bce3523b29a06f6d61a8db57d19

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