Awesome
<a href="https://panel.holoviz.org/"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/holoviz/panel/raw/main/doc/_static/logo_horizontal_dark_theme.png"> <img src="https://github.com/holoviz/panel/raw/main/doc/_static/logo_horizontal_light_theme.png" alt="Panel logo -- text is white in dark theme and black in light theme" width=400/> </picture> </a>Panel: The powerful data exploration & web app framework for Python
Panel is an open-source Python library that lets you easily build powerful tools, dashboards and complex applications entirely in Python. It has a batteries-included philosophy, putting the PyData ecosystem, powerful data tables and much more at your fingertips. High-level reactive APIs and lower-level callback based APIs ensure you can quickly build exploratory applications, but you aren't limited if you build complex, multi-page apps with rich interactivity. Panel is a member of the HoloViz ecosystem, your gateway into a connected ecosystem of data exploration tools.
Enjoying Panel? Show your support with a Github star — it’s a simple click that means the world to us and helps others discover it too! ⭐️
<table> <tbody> <tr> <td>Downloads</td> <td><a href="https://pypistats.org/packages/panel"><img src="https://img.shields.io/pypi/dm/panel?label=pypi" alt="PyPi Downloads" /></a> <a href="https://anaconda.org/pyviz/panel"><img src="https://pyviz.org/_static/cache/panel_conda_downloads_badge.svg" alt="Conda Downloads" /></a></td> </tr> <tr> <td>Build Status</td> <td><a href="https://github.com/holoviz/panel/actions/workflows/test.yaml?query=branch%3Amain"><img src="https://github.com/holoviz/panel/workflows/tests/badge.svg?query=branch%3Amain" alt="Linux/MacOS Build Status"></a></td> </tr> <tr> <td>Coverage</td> <td><a href="https://codecov.io/gh/holoviz/panel"><img src="https://codecov.io/gh/holoviz/panel/branch/main/graph/badge.svg" alt="codecov"></a></td> </tr> <tr> <td>Latest dev release</td> <td><a href="https://github.com/holoviz/panel/tags"><img src="https://img.shields.io/github/v/tag/holoviz/panel.svg?label=tag&colorB=11ccbb" alt="Github tag"></a> <a href="https://holoviz-dev.github.io/panel/"><img src="https://img.shields.io/website-up-down-green-red/https/holoviz-dev.github.io/panel.svg?label=dev%20website" alt="dev-site"></a></td> </tr> <tr> <td>Latest release</td> <td><a href="https://github.com/holoviz/panel/releases"><img src="https://img.shields.io/github/release/holoviz/panel.svg?label=tag&colorB=11ccbb" alt="Github release"></a> <a href="https://pypi.python.org/pypi/panel"><img src="https://img.shields.io/pypi/v/panel.svg?colorB=cc77dd" alt="PyPI version"></a> <a href="https://anaconda.org/pyviz/panel"><img src="https://img.shields.io/conda/v/pyviz/panel.svg?colorB=4488ff&style=flat" alt="panel version"></a> <a href="https://anaconda.org/conda-forge/panel"><img src="https://img.shields.io/conda/v/conda-forge/panel.svg?label=conda%7Cconda-forge&colorB=4488ff" alt="conda-forge version"></a> <a href="https://anaconda.org/anaconda/panel"><img src="https://img.shields.io/conda/v/anaconda/panel.svg?label=conda%7Cdefaults&style=flat&colorB=4488ff" alt="defaults version"></a></td> </tr> <tr> <td>Docs</td> <td><a href="https://github.com/holoviz/panel/tree/gh-pages"><img src="https://img.shields.io/github/last-commit/holoviz/panel/gh-pages.svg" alt="gh-pages"></a> <a href="https://panel.holoviz.org"><img src="https://img.shields.io/website-up-down-green-red/https/panel.holoviz.org.svg" alt="site"></a> <a href="https://holoviz.goatcounter.com/?filter=%2Fpanel.holoviz.org"><img src="https://img.shields.io/badge/GoatCounter-analytics-blue" alt="site"></a> </td> </tr> <tr> <td>Notebooks</td> <td><a href="https://panelite.holoviz.org/"><img src="https://img.shields.io/website-up-down-green-red/https/panel.holoviz.org.svg?label=Panelite" alt="dev-site"></a></td> </tr> <tr> <td>Support</td> <td><a href="https://discourse.holoviz.org/"><img src="https://img.shields.io/discourse/status?server=https%3A%2F%2Fdiscourse.holoviz.org" alt="Discourse"></a> <a href="https://discord.gg/rb6gPXbdAr"><img alt="Discord" src="https://img.shields.io/discord/1075331058024861767"></a> </td> </tr> </tbody> </table>
Home | Installation instructions | Getting Started Guide | Reference Guides | Examples | License | Support
Panel works with the tools you know and love
Panel makes it easy to combine widgets, plots, tables and other viewable Python objects into custom analysis tools, applications, and dashboards.
<br/>Panel works really well with the visualization tools you already know and love like Altair/ Vega, Bokeh, Datashader, Deck.gl/ pydeck, Echarts/ pyecharts, Folium, HoloViews, hvPlot, plotnine, Matplotlib, Plotly, PyVista/ VTK, Seaborn and more. Panel also works with the ipywidgets ecosystem.
Panel provides bi-directional communication making it possible to react to clicks, selections, hover etc. events.
You can develop in Jupyter Notebooks as well as editors like VS Code, PyCharm or Spyder.
<table> <tr> <td><a href="https://blog.holoviz.org/panel_0.12.0.html#JupyterLab-previews"><img src="https://assets.holoviz.org/panel/readme/jupyterlab.gif" /></a></td> <td><a href="https://blog.holoviz.org/panel_0.11.0.html#Autoreload"><img src="https://assets.holoviz.org/panel/readme/editor.gif" /></a></td> </tr> </table>Panel provides a unique combination of deployment options. You can share your data and models as
- a web application running on the Tornado (default), Flask, Django or Fast API web server.
- a stand alone client side application powered by Pyodide or PyScript via
panel convert
. - an interactive Jupyter notebook component.
- a static
.html
web page, a.gif
video, a.png
image and more.
Panel has something to offer for every one from beginner to data pro.
Panel is a member of the HoloViz ecosystem
Panel is a member of the ambitious HoloViz dataviz ecosystem and has first class support for the other members like hvPlot (simple .hvplot plotting api), HoloViews (powerful plotting api), and Datashader (big data viz).
Panel is built on top of Param. Param enables you to annotate your code with parameter ranges, documentation, and dependencies between parameters and code. With this approach,
- you don't ever have to commit to whether your code will be used in a notebook, a data app, in batch processing, or reports.
- you will write less code and be able to develop large, maintainable code bases!
Mini getting-started
Head over to the getting started guide for more!
Installation Instructions
Panel can be installed on Linux, Windows, or Mac with conda
:
conda install panel
or with pip
:
pip install panel
See the Environments section below for additional instructions for your environment.
Interactive data apps
Bring your data or model
def model(n=5):
return "⭐"*n
Bind it to a Panel widget and lay it out.
import panel as pn
pn.extension()
slider = pn.widgets.IntSlider(value=5, start=1, end=5)
interactive_model = pn.bind(model, n=slider)
layout = pn.Column(slider, interactive_model)
For deployment on a web server wrap it in a nice template.
pn.template.FastListTemplate(
site="Panel", title="Example", main=[layout],
).servable()
Start the server with
panel serve name_of_script.py --show
or
panel serve name_of_notebook.ipynb --show
Examples
Get started
Develop applications in your favorite notebook or editor environment, including Jupyter(Lab) notebooks, VSCode, Google Colab and many more, see our getting started guide for more details.
Support & Feedback
- Usage questions and showcases -> HoloViz Community
- Bug reports and feature requests -> Github
- Developer discussions -> Discord
For more detail check out the HoloViz Community Guide.
Contributing ❤️
Check out the Contributing Guide.
License
Panel is completely free and open-source. It is licensed under the BSD 3-Clause License.
Sponsors
The Panel project is also very grateful for the sponsorship by the organizations and companies below:
<table align="center"> <tr> <td> <a href="https://www.anaconda.com/"> <img src="https://static.bokeh.org/sponsor/anaconda.png" alt="Anaconda Logo" width="200"/> </a> </td> <td> <a href="https://www.blackstone.com/the-firm/"> <img src="https://static.bokeh.org/sponsor/blackstone.png" alt="Blackstone Logo" width="200"/> </a> </td> <td> <a href="https://numfocus.org/"> <img src="https://numfocus.org/wp-content/uploads/2017/03/numfocusweblogo_orig-1.png" alt="NumFOCUS Logo" width="200"/> </a> </td> <td> <a href="[https://www.blackstone.com/the-firm/](https://quansight.com/)"> <img src="https://assets.holoviz.org/logos/Quansight-logo.svg" alt="Quansight Logo" width="200"/> </a> </td> </tr> </table>