Share a HoloViews plot

The value of a HoloViews plot is in the interactions — hover to read the exact value, box-select on one panel and watch the linked one filter, zoom into the week that looks wrong.

The way that plot usually reaches a colleague is as a PNG, which has none of that. Someone screenshots the browser, crops it, and pastes it into a channel, and the recipient's first question is one the interactive version would have answered.

Publish it

import holoviews as hv
hv.extension("bokeh")

hv.save(layout, "plot.html")
curl -X POST https://commareports.com/api/v1/reports \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html plot.html \
        '{title: "Latency by region — week 36", html: $html}')"

Or drag plot.html into the app.

Pan, zoom, hover and linked selection all keep working — scripts run inside a sandboxed iframe (allow-scripts, no allow-same-origin).

Compose before you save. a + b for a layout, a * b for an overlay: saving the composed object keeps linked axes and shared selections, which stitching separate HTML files together does not.

Datashader plots

A Datashader-backed plot saved to static HTML holds the rasterizations that were embedded, not the ability to re-rasterize on zoom — that needs live Python. Save at the zoom levels that matter, or publish a small set of fixed views.

What the URL changes

  • The question lands on the chart. "What happened in week 32?" as an anchored thread. See commenting on HTML.
  • A refresh keeps the URL. PATCH the same report id when the data updates — a chart embedded in a wiki page never goes stale. See revisions and diffs.
  • On a schedule. A routine re-runs the script and refreshes the plot without you.

Limits

  • HTML body: 5 MB. HoloViews embeds the data in the file; a plot with hundreds of thousands of points exceeds it. Aggregate or rasterize before saving.
  • Scripts run, sandboxed: allow-scripts, no allow-same-origin.
  • 60 requests/minute per token.

Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision history.

Create your first report →

Related