Skip to content


Repository files navigation

Shiny App in Python? Bokeh + Jupyter notebook Gitter

linear app

Data scientist love building Shiny apps. It lets you create an interactive dashboard without the complexity of handling javascript or HTML. It also integrates well with other tools for data science as well. If you code in Python and you love Jupyter notebook, I will teach you how to make a “Shiny app” in Jupyter notebook with Python using Bokeh.

This tutorial consists of demos and practical session which you can work on your own. There are 3 lessons in this tutorial:

  1. Learning the basics of Bokeh
  2. Learning how to create interactivity in Bokeh
  3. How to construct an app

At the end you are encouraged to finish a mini-project by yourself or in groups.

This tutorial is for anyone who is interested in making an interactive dashboard in Jupyter notebook. You are expected to be able to code in basic Python and basic Javascript in Jupyter notebook environment.

What is Bokeh

Bokeh is an interactive visualization library for modern web browsers. Plus it works very well in Jupyter notebooks. It provides elegant, concise construction of versatile graphics, and affords high-performance interactivity over large or streaming datasets. Bokeh can help anyone who would like to quickly and easily make interactive plots, dashboards, and data applications.


  • basic knowledge of Python
  • basic knowledge of Pandas
  • basic knowledge of JavaScript


  • learn how to use Bokeh to make plots
  • learn how to use Bokeh to create interactive apps in Jupyter notebook
  • Have fun

Gitter Community

Since you are encourage to discuss and work in groups, we have a Gitter community open. Please respect each other and follow the NumFOCUS Code of Conduct ther as well.


The Pokemon data is from which is sourced from CC data.

JupyterCon Tutorial

JupyterCon will use this template to create a new repository for each tutorial, with speakers added as collaborators.

We also include here instructions for tutorial speakers. Please follow these instructions carefully, and email us if you have questions:

You can delete this file (or rename it) and replace it by a README file that targets the contents of this repository, populated with your tutorial materials.

Tutorial Chairs for 2020

  • Tania Allard, Microsoft
  • Gerard Gorman, University College London

General information

JupyterCon 2020 is an online event that places heavy emphasis on providing learning opportunities for all participants. It is a project of NumFOCUS, with a fully volunteer team of organizers.

What is NumFOCUS?

NumFOCUS is a 501(c)-3 non-profit in the United States. Its mission is to promote open practices in research, data, and scientific computing by serving as a fiscal sponsor for open source projects and organizing community-driven educational programs. NumFOCUS envisions an inclusive scientific and research community that utilizes actively supported open source software to make impactful discoveries for a better world.

Format for tutorials

Tutorials will consist of on-demand video presentations, and written materials presented in Jupyter notebooks. The notebooks should be complete and polished, amply narrated worked-out examples and exercises for participants.

Tutorial basic format:

  • Three or four Jupyter notebooks (at minimum), each notebook corresponding to "one lesson" – printed, estimate between 10–20 pages, or 17 to 35 min to read, per notebook.
  • Estimate for the material to be 1.5 to 3 hours to work through interactively.
  • The notebooks are complemented with videos, 25–30 min in length (not longer); at least one video per notebook.
  • Optional exercises for participants, instrumented for auto-grading.
  • One full tutorial may add up to total-time-on-task by the learners of about 4.5 hours.


The source materials for JupyterCon tutorials are copyright of their authors. We ask that materials be shared under standard public licenses. We recommend code be under BSD-3 or MIT license, and other materials be under a CC-BY Creative Commons Attribution license.


2020-Cheukting created by GitHub Classroom







No releases published