Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fastplotlib/fastplotlib

Repository files navigation

logo


CI PyPI version Documentation Status DOI

Installation | GPU Drivers | Documentation | Examples | Contributing

Next-gen plotting library built using the pygfx rendering engine that can utilize Vulkan, DX12, or Metal via WGPU, so it is very fast! fastplotlib is an expressive plotting library that enables rapid prototyping for large scale explorative scientific visualization.

Note

fastplotlib is currently in the late alpha stage, but you're welcome to try it out or contribute! See our Roadmap. See this for a discussion on API stability: #121

Supported frameworks

fastplotlib can run on anything that pygfx can also run, this includes:

✔️ Jupyter lab, using jupyter_rfb
✔️ PyQt and PySide
✔️ glfw
✔️ wxPython

Notes:
✔️ Non-blocking interactive Qt/PySide output is supported in ipython and notebooks, see http://fastplotlib.org/ver/dev/user_guide/guide.html#using-fastplotlib-in-an-interactive-shell
❕ We do not officially support jupyter notebook through jupyter_rfb, this may change with notebook v7
❕ We only officially support jupyterlab for use in notebook. This means we do not support vscode notebooks etc. Jupyterlab is the most reliable way to use fastplotlib in notebooks.
😞 jupyter_rfb does not work in collab, see vispy/jupyter_rfb#77

We recommend sticking to jupyter-lab for notebooks. From our experience the usage on other platforms, such as vscode notebooks, is not optimal.

Documentation

http://www.fastplotlib.org/

Questions, issues, ideas? You are welcome to post an issue or post on the discussion forum! 😃

Installation

To install use pip:

# with imgui and jupyterlab
pip install -U "fastplotlib[notebook,imgui]"

# minimal install, install glfw, pyqt6 or pyside6 separately
pip install -U fastplotlib

# with imgui
pip install -U "fastplotlib[imgui]"

# to use in jupyterlab, no imgui
pip install -U "fastplotlib[notebook]"

We strongly recommend installing simplejpeg for use in notebooks, you must first install libjpeg-turbo

Once you have libjpeg-turbo:

pip install simplejpeg

Noteguide.rst

fastplotlib and pygfx are fast evolving projects, the version available through pip might be outdated, you will need to follow the "For developers" instructions below if you want the latest features. You can find the release history here: https://github.com/fastplotlib/fastplotlib/releases

For developers

Make sure you have git-lfs installed.

git clone https://github.com/fastplotlib/fastplotlib.git
cd fastplotlib

# install all extras in place
pip install -e ".[notebook,docs,tests]"

# install latest pygfx
pip install git+https://github.com/pygfx/pygfx.git@main

Se Contributing for more details on development

Examples

Examples gallery: http://fastplotlib.org/ver/dev/_gallery/index.html

User guide: http://fastplotlib.org/ver/dev/user_guide/guide.html

fastplotlib code is identical across notebook (jupyterlab), and desktop use with Qt/PySide or glfw.

Notebooks

The quickstart.ipynb tutorial notebook is a great way to get familiar with the API: https://github.com/fastplotlib/fastplotlib/tree/main/examples/notebooks/quickstart.ipynb

Graphics drivers

You will need a relatively modern GPU, modern integrated graphics are usually fine for many use cases. Generally if your GPU is from 2017 or later it should be fine.

For more detailed information, such as use on cloud computing infrastructure, see: https://wgpu-py.readthedocs.io/en/stable/start.html#platform-requirements

Some more information on GPUs is here: http://fastplotlib.org/ver/dev/user_guide/gpu.html

Windows:

Vulkan drivers should be installed by default on Windows 11, but you will need to install your GPU manufacturer's driver package (Nvidia or AMD). If you have an integrated GPU within your CPU, you might still need to install a driver package too, check your CPU manufacturer's info.

Linux:

You will generally need a linux distro that is from ~2020 or newer (ex. Ubuntu 18.04 won't work), this is due to the glibc requirements of the wgpu-native binary.

Debian based distros:

sudo apt install mesa-vulkan-drivers
# for better performance with the remote frame buffer install libjpeg-turbo
sudo apt install libjpeg-turbo

For other distros install the appropriate vulkan driver package, and optionally the corresponding libjpeg-turbo package for better remote-frame-buffer performance in jupyter notebooks.

CPU/software rendering (Lavapipe)

If you do not have a GPU you can perform limited software rendering using lavapipe. This should get you everything you need for that on Debian or Ubuntu based distros:

sudo apt install llvm-dev libturbojpeg* libgl1-mesa-dev libgl1-mesa-glx libglapi-mesa libglx-mesa0 mesa-common-dev mesa-vulkan-drivers

Mac OSX:

WGPU uses Metal instead of Vulkan on Mac. You will need at least Mac OSX 10.13. The OS should come with Metal pre-installed, so you should be good to go!

❤️ Contributing

We welcome contributions! See the contributing guide: https://github.com/fastplotlib/fastplotlib/blob/main/CONTRIBUTING.md

You can also take a look at our Roadmap for 2025 and Issues for ideas on how to contribute!

Morty Proxy This is a proxified and sanitized view of the page, visit original site.