# Show the results show(p)
Bokeh 2.3.3, released in July 2021, is a in the 2.3.x series of the popular Python interactive visualization library. While it may not be the newest version available, Bokeh 2.3.3 represents a stable, refined iteration that fixes several important layout bugs and extension-related issues. For data scientists, analysts, and developers working with Python, this version offers a reliable foundation for creating interactive plots, dashboards, and data applications.
[ Python Code ] ──> [ JSON Data Model ] ──> [ BokehJS Engine ] ──> [ Interactive Browser Graphic ] Key Bug Fixes and Stability Improvements
July 9, 2021 Type: Patch Release Previous Version: 2.3.2 Next Version: 2.3.4
For those beginning their journey, Bokeh's user-friendly plotting interface lowers the barrier to entry. For experts, the server capabilities, custom extensions, and performance optimization tools unlock virtually limitless possibilities. As you evaluate your project's needs, consider the stability and maturity of version 2.3.3, especially in production environments where consistent behavior is paramount. However, also be mindful of the security advisory for Bokeh server applications and plan to upgrade to a patched version when possible. bokeh 2.3.3
pip install bokeh==2.3.3
Once you have Bokeh 2.3.3 installed, creating a simple interactive plot is remarkably easy. The following example demonstrates the bokeh.plotting interface, which is the primary interface for most users.
While you can pass data directly to glyphs as Python lists or NumPy arrays, Bokeh's true power lies in the ColumnDataSource (CDS). Think of a CDS as a dictionary that maps column names to sequences of data (lists, arrays, or even DataFrames). The CDS is the core data structure that powers most Bokeh plots, enabling efficient data sharing, filtering, and streaming between multiple plots and widgets. When a CDS is updated, any plot or widget using it automatically reflects the changes.
For more detailed documentation, you can refer to the archived Bokeh 2.3.3 User Guide or see current installation options on PyPI . Styling visual attributes — Bokeh 2.3.3 Documentation # Show the results show(p) Bokeh 2
: Use this to build applications where Python code reacts to browser events (like sliders or selections). You run these apps via the bokeh serve Interactions CustomJS callbacks
# Show the results show(p)
Bokeh 2.3 introduced the DataModel base class, allowing developers to define custom “properties‑only” Bokeh subclasses. This feature is especially useful for creating reusable components or integrating with other systems.
def update(): new_data = dict(x=[source.data["x"][-1] + 1], y=[random()]) source.stream(new_data, rollover=20) [ Python Code ] ──> [ JSON Data
For users who prefer pip, the standard Python package manager, the installation command is:
p1 = figure(title="Sine Wave", height=300, width=400) p1.line('x', 'y', source=source, line_width=2, color="blue")
: Through the Bokeh server, it supports real-time streaming data and server-side downsampling for massive datasets.
# Create a new plot with a title and axis labels p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')