Jupyter Notebook Plotting#
Plot with pyvista
interactively within a Jupyter notebook.
Note
We recommend using the Trame-based backed. See Trame Jupyter Backend for PyVista.
Supported Modules#
The PyVista module supports a variety of backends when plotting within a jupyter notebook:
Server and client-side rendering with PyVista streaming to the notebook through trame
Static images.
Usage with PyVista#
There are two ways to set the jupyter plotting backend. First, it can
be done on a plot by plot basis by setting the jupyter_backend
parameter in
either Plotter.show()
or dataset.plot()
. You can also set it globally with the
pyvista.set_jupyter_backend()
. For further details:
import pyvista as pv
pv.set_jupyter_backend('trame')
- set_jupyter_backend(backend, name=None, **kwargs)[source]#
Set the plotting backend for a jupyter notebook.
- Parameters:
- backend
str
Jupyter backend to use when plotting. Must be one of the following:
'static'
: Display a single static image within the Jupyterlab environment. Still requires that a virtual framebuffer be set up when displaying on a headless server, but does not require any additional modules to be installed.'client'
: Export/serialize the scene graph to be rendered with VTK.js client-side throughtrame
. Requirestrame
andjupyter-server-proxy
to be installed.'server'
: Render remotely and stream the resulting VTK images back to the client usingtrame
. This replaces the'ipyvtklink'
backend with better performance. Supports the most VTK features, but suffers from minor lag due to remote rendering. Requires that a virtual framebuffer be set up when displaying on a headless server. Must have at leasttrame
andjupyter-server-proxy
installed for cloud/remote Jupyter instances. This mode is also aliased by'trame'
.'trame'
: The full Trame-based backend that combines both'server'
and'client'
into one backend. This requires a virtual frame buffer.'html'
: Export/serialize the scene graph to be rendered with the Trame client backend but in a static HTML file.'none'
: Do not display any plots within jupyterlab, instead display using dedicated VTK render windows. This will generate nothing on headless servers even with a virtual framebuffer.
- name
str
,optional
The unique name identifier for the server.
- **kwargs
dict
,optional
Any additional keyword arguments to pass to the server launch.
- backend
Examples
Enable the trame Trame backend.
>>> pv.set_jupyter_backend('trame')
Just show static images.
>>> pv.set_jupyter_backend('static')
Disable all plotting within JupyterLab and display using a standard desktop VTK render window.
>>> pv.set_jupyter_backend(None)