1. Home
  2. Training Library
  3. Big Data
  4. Courses
  5. Interactive Data Visualization with Python using Bokeh

Interactive Data Visualization with Python using Bokeh

Contents

keyboard_tab

The course is part of this learning path

Working with Python Visualization Tools
course-steps
3
certification
1
lab-steps
1
play-arrow
Introduction
Overview
Difficulty
Intermediate
Duration
1h 33m
Students
45
Description

Bokeh is an interactive visualization library in Python that provides visual artefacts for modern web browsers. In this course, we're going to have a look at the fundamental tools that are necessary to build interactive plots in Python using Bokeh.

Bokeh exposes two interface levels to users: bokeh.plotting and bokeh.models, and this course will focus mainly on the bokeh.plotting interface. 

We'll start things off by exploring two key concepts in Bokeh: Column Data Source and Glyphs. Then we'll move on to looking at different aspects related to the customization of a bokeh plot, as well as focusing on how to introduce interactivity into a Bokeh object.

You'll also learn about using inspectors to report information about the plot and we'll also investigate different ways to plot multiple Bokeh objects in one figure. We'll round off the course by looking at plot methods for categorical variables.

Learning Objectives

  • Learn about Columns Data Sources and Glyphs in Bokeh and how they are used
  • Learn how to customize your plots and add interactivity to them
  • Understand how inspectors can be added to plots to provide additional information
  • Learn how to plot multiple Bokeh objects in one figure
  • Understand the plot methods available for categorical variables

Intended Audience

  • Data scientists
  • Anyone looking to build interactive plots in Python using Bokeh

Prerequisites

To get the most out of this course, you should have a good understanding of Python. Before taking this course, we also recommend taking our Data Visualization with Python using Matplotlib course.

Resources

The GitHub repo for this course can be found here: https://github.com/cloudacademy/interactive-data-visualization-with-bokeh 

Transcript

Welcome. My name is Andrea Giussani, and I am going to be your instructor for this course on Interactive Data Visualization with Python using Bokeh. In this course, we will cover the fundamental tools that are necessary to build interactive plots in Python. Although it’s not essential, I encourage you to attend the course Data Visualization with Python using Matplotlib before starting this course.

Bokeh is an interactive visualization library that provides visual artefacts for modern web browsers. The main difference when compared to other python visualization libraries, such as Matplotlib, is that Bokeh allows you to generate interactive and flexible plots without the need to learn Javascript or advanced visualization tools such as D3. Hence, Bokeh allows you to create  elegant, concise, and versatile graphics, and provides high-performance interactivity over large or streaming datasets.

Bokeh’s first release came out in April 2013, and was mainly developed by Peter Wang and other developers as a project supported by Continuum Analytic. It became a NumFOCUS-sponsored Project in 2018.

In general, Bokeh exposes two interface levels to users. On one hand, we have bokeh.plotting, which is described as a higher-level interface centred around composing visual glyphs (for instance a figure), or bokeh.models, which is described as a low-level interface that provides more flexibility to application developers (for instance, through widgets).

This course will cover both interfaces, but we will mainly focus on the former, and therefore we will not dive into all advanced aspects of the bokeh.models interface. If you are curious to understand how this family works in the back-end, please visit the official documentation (https://docs.bokeh.org/en/latest/docs/reference/models.html).

Another great thing about bokeh is that it provides at least two ways to embed plots and data into HTML documents.

On one hand, we have what we call Standalone Documents: output is translated into standalone HTML or JS outputs, which gives data scientists more flexibility during the development phase of a project since they are not backed by a Bokeh server.

On the other hand, we have Bokeh Applications: these are very interesting since, in addition to all the features of standalone documents, it is also possible to connect events and tools to real Python callbacks that execute in the Bokeh server. In this way, we can build interactive dashboards and bokeh web apps in just a few lines of code.

Please note that in this course, we will not investigate the development of a web app in a bokeh server but the main focus will be on the production of standalone documents.

I strongly recommend that you visit the GitHub repository for this course: there you can find the data we will use to illustrate the methods in this course, and possible additional material related to the course.

This course is structured as follows: in Lecture 2 we will look at two important key concepts in bokeh: `Column Data Source` and `Glyphs`. In Lecture 3 we will cover different aspects related to the customization of a bokeh plot, and we will focus on the possibility to introduce interactivity into a bokeh object.

In Lecture 4, we will dive into Inspectors, which are passive tools that report information about the plot.

In Lecture 5, we will investigate different ways to plot multiple bokeh objects in one figure, and finally, in Lecture 6, we will focus on plot methods for categorical variables.

I am really excited to get started, so I’ll see you in lecture two!

About the Author
Avatar
Andrea Giussani
Data Scientist
Students
566
Labs
1
Courses
4
Learning Paths
1

Andrea is a Data Scientist at Cloud Academy. He is passionate about statistical modeling and machine learning algorithms, especially for solving business tasks.

He holds a PhD in Statistics, and he has published in several peer-reviewed academic journals. He is also the author of the book Applied Machine Learning with Python.