Support for non-Jupyter notebook

Hi,

I’m a developer of Synapse Notebook (a notebook that’s not based on Jupyter notebook) and recently we got some customer tickets about using hvplot in our product.

When using hvplot in other notebooks like our product, Databricks Notebook(a popular notebook). The plot cannot be shown unless we use some workaround like exporting the plot to HTML file and then reading it.
image

Is there any documentation about the support for non-Jupyter notebook? If there is, customer could be more clear about how to use hvplot in other notebooks.

And have you considered supporting other notebooks? Let customer use hvplot smoothly, without any workaround?

1 Like

Hi @chihiroxc

I’m a user of hvPlot and a minor contributor too. To my knowledge hvPlot and HoloViews works in Jupyter Notebooks, Google Colab and VS Code Notebooks.

I know from contributing to Panel that each case has to be treated a bit differently. That when when running pn.extension() the notebook environment is determined and whatever configuration and javascript injection needed is done.

I am not aware of any documentation in this area.

I would recommend to

  • Create a Feature Request for Synapse Notebook support.
    • Include a description of how you output in synapse notebooks
    • Add links to other plotting libraries or similar that added support for synapse notebooks
    • Offer to contribute a PR if you can get some advice on how to do this.
  • Reach out to the core devs on gitter: pyviz/pyviz - Gitter

And please consider adding support for Panel too. Then things would start to be interesting.

Thank you for your suggestions!

@chihiroxc We’d really need to understand a little bit about how communication channels and rendering occur inside Synapse notebooks? So some questions for you:

  1. Do you support rendering arbitrary HTML + JS? Some notebook environments iframe every cell output which makes things quite difficult.
  2. Do you support Jupyter Comms? This is how we support interactivity in the notebook, without Comms many of the interactive features won’t work.
  3. Do you already support rendering of ipywidgets? If so simply try setting pn.comm = 'ipywidgets'.

@philippjfr

  1. Yes, we support rendering arbitrary HTML+JS, but the content will be in an iframe. In the future, we plan to iframe all kinds of output, not only text/html.
  2. Yes, but we don’t support all Jupyter Comms, our backend is based on jupyter kernel but not exact the same, some Comms message like updating ipywidgets is not supported yet. We have plan to support all Comms messages that ipywidgets need.
  3. Yes, we support rendering ipywidgets, but the interactivity of ipywidgets is not supported yet.