bokeh file_html example

Bokeh is a powerful Python library for creating interactive visualizations for web browsers. It enables users to generate aesthetically pleasing and responsive graphics with minimal effort. In this article, we will walk through an example of using Bokeh’s file_html function to generate an HTML file containing an interactive visualization.

Bokeh Overview

Bokeh is designed for creating interactive visualizations that can be embedded in web applications or displayed in Jupyter Notebooks. The library provides a versatile set of tools to build various types of plots, such as line, bar, scatter, and pie charts. Bokeh’s flexibility allows users to customize the appearance and interactivity of the plots, making it a popular choice for data visualization projects.

Using the file_html Function

One of the most convenient ways to share your Bokeh visualizations is by exporting them to a standalone HTML file. This can be done using the file_html function, which takes a Bokeh plot object and generates an HTML file with the necessary JavaScript and CSS to display the interactive visualization.

Here’s an example of using the file_html function to create a simple line plot:

  1. Import required libraries:
    from bokeh.plotting import figure
    from bokeh.resources import CDN
    from bokeh.embed import file_html
  2. Create the data for the plot:
    x = [1, 2, 3, 4, 5]
    y = [2, 5, 8, 2, 7]
  3. Generate a Bokeh line plot:
    p = figure(title="Simple Line Plot", x_axis_label="x", y_axis_label="y")
    p.line(x, y, legend_label="Line", line_width=2)
  4. Use the file_html function to export the plot to an HTML file:
    html = file_html(p, CDN, "Bokeh Line Plot Example")
    with open("bokeh_line_plot_example.html", "w") as f:

This code creates a standalone HTML file named “bokeh_line_plot_example.html” containing the line plot. The file can be opened in any web browser, and the interactive plot can be viewed and shared without the need for a Python environment.

Common Issues Faced

While Bokeh’s file_html function is a powerful tool for generating standalone HTML files containing interactive visualizations, users may encounter some issues or limitations during its use. Here are some common challenges and their potential solutions:

  1. Large file sizes: Bokeh visualizations can sometimes produce large HTML files, particularly when working with extensive datasets or complex plots. This can lead to slow loading times when opening the file in a browser. To mitigate this issue, consider using Bokeh server applications, which can handle large datasets more efficiently, or explore data aggregation techniques to reduce the size of the data being visualized.

  2. Compatibility with web browsers: Although Bokeh visualizations generally work well across modern web browsers, some older browsers may not fully support the necessary JavaScript features. To ensure the best compatibility, advise users to view the HTML files in up-to-date browsers like Google Chrome, Mozilla Firefox, or Microsoft Edge.

  3. Loss of interactivity in Jupyter Notebooks: When using the file_html function within a Jupyter Notebook, the interactive plot may no longer be displayed in the notebook itself. To maintain interactivity within the notebook, use the %notebook magic command or the output_notebook() function from Bokeh’s io module.

  4. Missing or broken JavaScript and CSS resources: The file_html function relies on external JavaScript and CSS resources provided by the Content Delivery Network (CDN) or loaded locally. If these resources are not accessible or loaded correctly, the interactive plot may not function as expected. Check your internet connection and ensure that the specified resources (such as CDN in the example) are available and correctly loaded.

  5. Customizations not being applied: When using Bokeh’s customization options, such as themes or custom styles, you may find that these changes are not reflected in the exported HTML file. To resolve this issue, ensure that you pass the necessary customizations to the file_html function, and double-check your syntax to confirm that you are correctly applying the desired modifications.


Bokeh’s file_html function offers a convenient way to export interactive visualizations as standalone HTML files. This makes it easy to share your work with colleagues or clients who may not have access to your Python environment. By using Bokeh, you can create visually appealing and engaging visualizations that are easily shareable and accessible on the web.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.