How to use gridplot() method in Bokeh

share link

by Dejaswarooba dot icon Updated: Sep 14, 2023

technology logo
technology logo

Solution Kit Solution Kit  

gridplot in Bokeh is a versatile layout option. It arranges multiple Bokeh plots in a grid-like structure. This feature is essential for creating interactive data visualizations and dashboards.

A gridplot allows you to create an entire layout. Combining various Bokeh plots into rows and columns accomplishes it. This fosters efficient exploration and interaction with data. To use the gridplot function in Bokeh, you can import it using Bokeh.layouts import gridplot. Gridplot is a powerful tool for organizing plots, figures, or charts for a holistic data view. It's integral to interactive data visualization and enables users to explore insights seamlessly.  

Bokeh.layout is a module within the Bokeh library. It provides tools and functions for arranging and organizing visual elements. This includes plots, figures, and widgets. It arranges them into various layouts for creating interactive data visualizations and dashboards. This module offers comprehensive layout options that help structure your visualizations effectively. Also, it enhances the user experience.  

  • Bokeh Layouts: The Bokeh.layout module encompasses functions and classes. They allow you to arrange multiple plots, figures, and widgets. It improves flexibility and generates responsive layouts.  
  • Column and Row Layouts: Bokeh provides columns() and row() functions. They arrange plots or widgets vertically and horizontally, respectively. This creates cohesive layouts for data presentation.  
  • Grid Layouts: The gridplot() function facilitates the construction of grid-based layouts. To arrange multiple visualizations, put plots in rows and columns to create structure.  
  • Tabbed Layouts: Bokeh's Panel() and Tabs() classes enable the creation of tabbed layouts. This allows users to switch between different sets of visualizations or dashboards seamlessly.  
  • Widgetbox: The WidgetBox() function helps arrange widgets in a column. This ensures they are well-aligned and spaced out. Also, it enhances the visual appeal of the interface.  
  • Responsive Layouts: Bokeh's layout functions provide responsiveness. It ensures that visualizations adapt well to different screen sizes and orientations. It makes them suitable for various devices.  
  • Nesting Layouts: To create complex patterns, you can place layouts inside one another.  
  • Layout() function: It helps combine multiple layouts into one cohesive layout. This offers more control over the final arrangement.  
  • WebGL Support: Certain Bokeh layouts support WebGL. This enhances performance for large datasets and complex visualizations, especially with high interactivity.  


You can use gridplot to create a list that matches your preferred grid layout. This list structure includes multiple plots that you want to display together. This ensures a consistent and visually appealing display across various charts.  

With Gridplot, you can make various plots, such as basic charts and separate plots. You can adjust grid heights and widths. This ensures the appropriate allocation of space for each visualization. The first, second, and new plots can seamlessly integrate into the grid.  

Each plot in a gridplot holds its data and can connect with other plots for brushing and interaction. Additionally, tools like the hover tool and select tool are applicable. This provides users with insights when they hover over data points. Bokeh's gridplot is compatible with various environments, including Jupyter Notebooks. Also, it allows you to customize attributes like x-axis limits and output files.  


from Bokeh.layouts import gridplot   

grid = gridplot([[plot1, plot2], [plot3, plot4]])  


plot1, plot2, plot3, and plot4 are the individual Bokeh plot objects you want to arrange in a 2x2 grid. The gridplot function creates a grid layout containing these plots. You can customize the layout by adding optional parameters like toolbar_location and sizing_mode.  

Preview of the output that you will get on running this code from your IDE


This code creates a grid layout (single column) containing two figures (air temperature and wind speed) using Bokeh's `gridplot` function. The layout is set to stretch to fill available space, and the tools of the two figures are not merged.

Follow the steps carefully to get the output easily.

  • Download and install VS Code on your desktop.
  • Open VS Code and create a new file in the editor.
  • Copy the code snippet that you want to run, using the "Copy" button or by selecting the text and using the copy command (Ctrl+C on Windows/Linux or Cmd+C on Mac).,
  • Paste the code into your file in VS Code, and save the file with a meaningful name and the appropriate file extension for Python use (.py).file extension.
  • pip install bokeh - Run this command in the command prompt to install Bokeh
  • Add the line from import show in the beginning.
  • Replace the lines
airtemp_fig = figure()
windspeed_fig = figure()


airtemp_fig = figure (width=400, height=300, title="Air Temperature")
airtemp_fig.line([1, 2, 3, 4], [22, 25, 27, 23], line_color='blue', line_width=2)
windspeed_fig = figure(width=400, height=300, title="Wind Speed")][1, 2, 3, 4], [5, 8, 6, 7], size=10, color='green')
  • Add the line show(grid) at the end.
  • To run the code, open the file in VS Code and click the "Run" button in the top menu, or use the keyboard shortcut Ctrl+Alt+N (on Windows and Linux) or Cmd+Alt+N (on Mac). The output of your code will appear in the VS Code output console.

I hope you found this useful. I have added the link to dependent libraries, and version information in the following sections.

I found this code snippet by searching for "gridplot bokeh" in kandi. You can try any such use case!

Dependent Libraries

bokehby bokeh

Python doticonstar image 17667 doticonVersion:Currentdoticon
License: Permissive (BSD-3-Clause)

Interactive Data Visualization in the browser, from Python


            bokehby bokeh

            Python doticon star image 17667 doticonVersion:Currentdoticon License: Permissive (BSD-3-Clause)

            Interactive Data Visualization in the browser, from Python

                      If you do not have Bokeh that is required to run this code, you can install it by clicking on the above link and copying the pip Install command from the page in kandi.

                      You can search for any dependent library on kandi like Bokeh.

                      Environment tested

                      I tested this solution in the following versions. Be mindful of changes when working with other versions.

                      1. The solution is created and tested using Vscode 1.77.2 version
                      2. This code had been tested using python version 3.8.0
                      3. Bokeh version 3.1.1 has been used.

                      By using this technique, you can make attractive startup screens for GUI apps in Python's Tkinter. This process also facilitates an easy-to-use, hassle-free method to create a hands-on working version of code. This helps to use gridplot() method of Bokeh in Python


                      1. What is a Bokeh grid plot, and why is it useful?  

                      A Bokeh grid plot is a visualization in the Bokeh library. It arranges multiple plots (such as scatter or line plots) in a grid layout. It helps you look at many visualizations and find patterns in data.  

                      2. What layout options are available for creating a Bokeh grid plot?  

                      Bokeh has options for organizing plots in grids, like `gridplot`. It also has `column`/`row` for vertical/horizontal layouts. These functions help organize plots within a single figure or across multiple figures.  

                      3. How can I use the plot tools in Bokeh to make charts on my grid plot?  

                      To create a grid plot with Bokeh, first import the necessary functions. Then, create individual plots. Then, use the `gridplot()` function to arrange these plots in a grid layout.  

                      4. Can users customize individual plots within a single grid layout?  

                      Access and modify their properties to customize plots in a grid layout. You can control their look and attributes separately while arranging them in a grid.  

                      5. How do I link data between individual plots on a single gridplot?  

                      To connect data in a gridplot: 

                      1. Use the same ColumnDataSource for all plots. 
                      2. Make sure the column names are the same. 
                      3. Update the ColumnDataSource's data to show changes. This will automatically update all linked plots in the grid.  


                      1. For any support on kandi solution kits, please use the chat
                      2. For further learning resources, visit the Open Weaver Community learning page.

                      See similar Kits and Libraries