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 exploratory scientific visualization.
Note
fastplotlibis currently in the late alpha stage, but you're welcome to use it or contribute! See our Roadmap. See this for a discussion on API stability: fastplotlib#121
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 the interactive shells section in the user guide
❕ We do not officially support jupyter notebook through jupyter_rfb, this may change with notebook v7
❕ We only support jupyterlab for use in notebooks. This means that we do not support VSCode notebooks or any other python notebook platform. Jupyterlab is the most reliable way to use widget-based libraries in notebooks.
😞 jupyter_rfb does not work in collab, see vispy/jupyter_rfb#77
http://www.fastplotlib.org/ver/dev
Questions, issues, ideas? You are welcome to post an issue or post on the discussion forum! 😃
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 without imgui
pip install -U "fastplotlib[notebook]"We strongly recommend installing simplejpeg for use in notebooks, you must first install libjpeg-turbo
- If you use
conda, you can getlibjpeg-turbothrough conda. - If you are on linux you can get it through your distro's package manager.
- For Windows and Mac compiled binaries are available on their release page: https://github.com/libjpeg-turbo/libjpeg-turbo/releases
Once you have libjpeg-turbo:
pip install simplejpegNote
fastplotlibandpygfxare 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
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@mainSee Contributing for more details on development
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
Generally if your GPU is from 2017 or later it should be fine. Modern integrated graphics are usually fine for many use cases. The exact requirements will depend on how complex your visualization is and how many objects you need to render.
More detailed information on GPUs and drivers is here: http://fastplotlib.org/ver/dev/user_guide/gpu.html
For more detailed information, such as use on cloud computing infrastructure, see the WGPU docs: https://wgpu-py.readthedocs.io/en/stable/start.html#cloud-compute
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!