Unleash Your Data Visualization Skills with Interactive Plots: Introducing Panel

Arthi Rajendran
4 min readJun 7, 2023


Would you want to build an interactive plot such as this?

Interactive plot. Source: Pybytes

Don't forget to follow and read until the end of this article!

Source: giphy

Data visualization plays a vital role in understanding and interpreting complex datasets. Python, with its diverse range of libraries, offers powerful tools for creating interactive visualizations. In this article, we will explore a practical example that demonstrates how to generate an interactive scatter plot using Python. By the end, you’ll have a solid understanding of how to leverage Python libraries to create engaging and interactive visualizations.

Setting up the Environment

Before we dive into the code, let’s ensure we have the necessary libraries installed: NumPy, Pandas, Panel, and HoloViews. If any of these libraries are missing, we can install them using the pip package manager.

Generating Random Data

Our example begins by generating random data using NumPy’s random number generator. We set the seed to ensure reproducibility. In this case, we create 1000 data points with two variables, ‘x’ and ‘y’. The Pandas library is then utilized to store this data in a DataFrame, which provides a convenient structure for data analysis and manipulation.

Defining the Interactive Scatter Plot Function

The core of our visualization lies in the scatter_plot function. This function takes two parameters: num_points and color. It selects a random subset of data points based on the specified num_points and creates an interactive scatter plot using HoloViews. The scatter plot is customized with a width and height of 400, and the color of the points is determined by the color parameter.

Creating Interactive Widgets

To enhance interactivity, we introduce two widgets: an IntSlider and a Select dropdown. The IntSlider allows users to select the number of points they want to visualize, with a range from 100 to the total number of data points. The Select dropdown enables users to choose the color of the points from options such as red, green, or blue.

Designing the Panel Layout

In this section, we utilize the Panel library to design the layout of our interactive visualization. We create a Column layout that arranges the widgets and the scatter_plot function in a vertical sequence. The scatter_plot function is bound to the values of the widgets using pn.bind, ensuring that any changes in the widget values dynamically update the scatter plot.

Displaying the Interactive Visualization

Finally, we display the layout using the layout.servable() function. This function launches a local server and renders the interactive scatter plot in the browser. Users can now interact with the widgets, adjusting the number of points and colors to explore different visualizations of the data.

In this article, we explored a practical example of creating an interactive scatter plot using Python’s data visualization libraries. By leveraging NumPy, Pandas, Panel, and HoloViews, we were able to generate a dynamic visualization that allows users to interact with the data. This hands-on guide equips you with the knowledge to create your own interactive visualizations, opening up a world of possibilities for exploring and communicating complex data patterns.

Python’s data visualization ecosystem provides a wide range of tools and libraries that empower you to create insightful and engaging visualizations. Start experimenting with interactive data visualizations in Python today and unlock the potential to extract meaningful insights from your data.

Now it’s your turn to try it out. Access the Jupyter Notebook from Github, and let your imagination run wild. Happy coding and visualizing!

Thanks for sticking around until the end. Visit me on my Linkedin to have a more in-depth conversation or any questions.



Arthi Rajendran

A Data Scientist, who is passionate about Healthcare, Data & Machine Learning.