canvasxpress-dashboards (Python)
Linked, multi-panel CanvasXpress dashboards in Python — for Jupyter, VS Code and Quarto notebooks, Dash, Streamlit, Flask and standalone pages. It renders a canvasxpress-dashboards spec, or builds a whole dashboard from a DataFrame. The renderer is bundled; there are no required dependencies (pandas only for a DataFrame).
from canvasxpress_dashboards import Dashboard
# A table in, a linked dashboard out. A patient cohort (numeric time + 0/1 event columns) gets
# filters, a Kaplan-Meier curve, a measure by group and against time, and a case card; a per-sample
# sequencing run-QC table gets filters, depth, mapping vs duplication and quality by lane.
Dashboard(data=trial, id="patient")
# Or render a spec you wrote, saved from the builder, or returned by the MCP tool.
Dashboard("my-dashboard.spec.json")
Click a patient's point and its record loads into the case card; every panel shares the data, so a selection in one panel selects the same rows in the others. If no template fits the table the page says so rather than guessing — pass a spec instead.
Where it runs
| Where | How |
|---|---|
| Jupyter, VS Code, Quarto, Colab | evaluate a Dashboard as the last line of a cell (it is an <iframe> that grows with the dashboard) |
| a file | Dashboard(...).save("dashboard.html") (standalone: the renderer is inlined) or .show() |
| Flask / FastAPI / Django | return Dashboard(...).to_html() from a view |
| Dash | html.Iframe(srcDoc=Dashboard(...).to_html(frame=True), style={"width": "100%", "height": "1400px", "border": "0"}) |
| Streamlit | streamlit.components.v1.html(Dashboard(...).to_html(), height=1400, scrolling=True) |
| Shiny for Python | ui.HTML(Dashboard(...).iframe_html(1400)) |
Flask and Dash are covered by the package's browser tests; Streamlit and Shiny for Python go through the same page but are not run in them.
Data
cxd_data(df, id="patient") is what Dashboard(data=df) uses: numeric columns are the measures, every
other column an annotation of the records, rows are the records (more rows than numeric columns is the
orientation the templates expect). A DataFrame, a dict of columns or a list of records all work; missing
values become null.
Talking to the page
A dashboard rendered with frame=True (the notebook output does) reports to the page that embeds it with
window.postMessage: {type: "cxd-params", id, params} whenever a parameter changes — for the case-card
dashboards, params.case is the patient last clicked — and {type: "cxd-resize", id, height} as it grows.
Dashboard.frame_id is the id.
Engine and bundle
The dashboards need the CanvasXpress engine, loaded from canvasxpress.org by default (the current release,
which dashboards use features of); pass engine_url= for a mirror or an offline folder holding
canvasXpress.min.js and canvasXpress.css. The dashboards bundle (1 MB) is inlined in each page;
bundle_url= loads it from a URL instead, which keeps notebooks small.
Not included
The server-computed insights strip (insights in a spec) needs the dashboards server and is not shown.
Connector, dataset and live sources need it too; inline data (what a DataFrame becomes) works anywhere.
MIT licensed.
Metadata
Release files for canvasxpress-dashboards 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| canvasxpress_dashboards-0.1.0.tar.gz | 295.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| canvasxpress_dashboards-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 590.0 kB
Release files / canvasxpress_dashboards-0.1.0.tar.gz
| Download URL | canvasxpress_dashboards-0.1.0.tar.gz |
|---|---|
| Size | 295.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
36f4fa6060ee044be7a43956b232ade7e00e946215a9d580f607b5495e9cec49
|
|
BLAKE2b-256 checksum How to use checksums |
c84b9868bad162f99a37309658f2ed5d2813d520104e38e1aadbd3d9f59787f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / canvasxpress_dashboards-0.1.0-py3-none-any.whl
| Download URL | canvasxpress_dashboards-0.1.0-py3-none-any.whl |
|---|---|
| Size | 295.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d7149404c07d6f408e3e133dac70382e47b9542bd4875d81b8f28a251351d0e
|
|
BLAKE2b-256 checksum How to use checksums |
3976193895a09a07ff0af01696698db3fd872219dbe497dca17ea0f3029bd172
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Security for canvasxpress-dashboards 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.