Dive deeper into your data

Create interactive data-exploration tools and web apps with Python in Panel

Sarah Schlothauer
© Shutterstock / Deb Davis

Python continues to be the language of choice for all things scientific. Panel is a new open source high-level library for creating ways of showing off scientific data. It supports popular Python plotting libraries such as Bokeh, Matplotlib, and Datashader for data visualization. Create reactive objects with Panel and compose plots, tables, and more.

Panel is a new open source high-level library for helping developers snake-charm solutions for Python.

Python continues its reign as an interactive way to show off scientific data, so let’s check out this library and see what it adds to the equation.

Features & usage

According to Philipp Rudiger at Anaconda Inc, Panellets you create custom interactive web apps and dashboards by connecting user-defined widgets to plots, images, tables, or text“. He goes on to write in his Panel announcement post:

The main aim behind Panel was to make it as easy as possible to wrap the outputs of existing tools in the PyData ecosystem as a control panel, app, or dashboard, ensuring that users can seamlessly work with the analysis and visualization tools they are already familiar with. Secondly, Panel aims to make it trivial to go from prototyping an app to deploying it internally within an organization, or sharing it publicly with the entire internet.

SEE ALSO: Cthulhu: New open source chaos engineering tool for Java

It builds off of Bokeh’s (the interactive visualization library) model base classes, layouts, widgets, and server infrastructure and adds onto it communication between Python and JavaScript. Meanwhile, Param is a framework for reactive parameters.

Panel supports Python plotting libraries such as Bokeh, Matplotlib, and Datashader in order to help visualize your data. (See the full list of supported object types and libraries here. As per the issue, additional supported types may come in future updates.) Panel automatically chooses which representation to use for a library.

Interactive widgets can add to the mix. Jupyter Notebooks can also integrate to create either standalone one-off apps, or mixed into a larger project. With this flexibility, components can be added or removed to create a dynamic, complex dashboard.

Setting up & examples

Panel requires Python v2.7 and v3 on Linux, Windows, or Mac. See the starting guide for information on requisites and how to install the optional JupyterLab extension and/or add interactive controls.

SEE ALSO: Pythia: Facebook’s deep learning framework for the vision and language domain

Explore the demo gallery and get a glimpse of how Panel works and brainstorm some ideas for its potential. (Example projects also available for experimentation on GitHub. Each example comes with a small dataset for testing.)

The gallery also includes example apps, different Panel APIs, layouts, dynamic UIs, apps using the Param library, JavaScript interactivity, and external libraries.

Be sure and also check out other tools maintained by Py Viz that help with data visualization. Other core high-level libraries include hvPlot, HoloViews, and GeoViews.

Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is the editor for She received her Bachelor's degree from Monmouth University, West Long Branch, New Jersey. She currently lives in Frankfurt, Germany with her husband and cat where she enjoys reading, writing, and medieval reenactment. She is also the editor for Conditio Humana, an online magazine about ethics, AI, and technology.

Inline Feedbacks
View all comments