Generated by GPT-5-mini| Bokeh (library) | |
|---|---|
| Name | Bokeh |
| Developer | Anaconda, Inc. |
| Released | 2013 |
| Programming language | Python, JavaScript |
| Operating system | Cross-platform |
| License | BSD-3-Clause |
Bokeh (library) Bokeh is an open-source interactive visualization library for the Python ecosystem designed to produce elegant, concise graphics for modern web browsers. It enables creation of interactive plots, dashboards, and data applications that integrate with tools and platforms such as Jupyter Notebook, JupyterLab, Anaconda, Dask and Pandas. Bokeh emphasizes declarative grammar, real-time streaming, and server-driven interactivity compatible with HTML5, CSS, and JavaScript standards.
Bokeh originated in 2013 at Continuum Analytics (now Anaconda) as a response to needs from the scikit-learn, NumPy, and Pandas communities for web-native, interactive visualizations. Early contributors included developers active in IPython and Jupyter Notebook ecosystems; subsequent development intersected with projects such as Matplotlib, Plotly, Vega, and D3.js. Major milestones mirror broader trends in data science: adoption of JupyterHub, integration with Docker for deployment, and compatibility with cloud services exemplified by AWS Lambda and Google Cloud Platform. Governance shifted from corporate stewardship to a collaborative model involving contributors from academic institutions, startups, and enterprises exemplified by collaborations with NumFOCUS-aligned projects.
Bokeh provides high-level chart types like line, bar, scatter and heatmap alongside lower-level primitives for custom glyphs and layouts. It supports linked brushing and selection across multiple plots, streaming and patching of data sources, and interactive widgets such as sliders, drop-downs, and tabs compatible with Bootstrap-styled layouts. Output targets include standalone HTML5 documents, embeddable JSON specifications, and server-backed apps via the Bokeh Server or integration with Flask, Django, and Tornado. Bokeh’s tooling interoperates with Pandas DataFrame and Dask collections, enabling scalable visualization pipelines for datasets stored in HDF5, Parquet, or managed by Apache Arrow.
Bokeh’s architecture separates a concise Python API from a browser-side rendering component implemented in TypeScript and JavaScript that leverages HTML5 canvas and WebGL for performance. The library uses a document model inspired by Model–View–Controller patterns and serializes state between Python and the browser using a JSON-based protocol over WebSockets when the Bokeh Server is employed, or via embedded JSON for static documents. The server component integrates with asynchronous frameworks such as Tornado and can be deployed using Gunicorn, uWSGI, or container orchestration systems like Kubernetes. For layout and styling, Bokeh supports CSS-based themes and customizable templates compatible with Jinja2 used in Flask and Django projects.
Bokeh is used in interactive dashboards for finance firms working with Bloomberg L.P.-style datasets, scientific visualization in labs tied to CERN and NASA workflows, and operational monitoring integrated with Prometheus and Grafana. Data engineering pipelines use Bokeh to visualize outputs from Apache Spark, Apache Kafka, and Apache Airflow DAGs. Integration with machine learning stacks such as scikit-learn, TensorFlow, and PyTorch enables model diagnostics, while geospatial extensions pair with GeoPandas and mapping services like Leaflet and OpenStreetMap. In enterprise settings, Bokeh plots are embedded in applications alongside React, Angular, and Vue.js frontends or served through Dash-style patterns.
The project’s development occurs on GitHub, drawing contributors from academia, industry, and open-source communities associated with NumFOCUS and Python Software Foundation. Roadmaps and proposals have been discussed at conferences like PyCon, SciPy, and Strata Data Conference. The contributor base includes authors with backgrounds in projects such as Matplotlib, Plotly, Seaborn, and Altair. Community resources include mailing lists, issue trackers, and examples showcased on tutorial pages and in notebooks distributed via Binder and Google Colab.
Bokeh is distributed under the BSD-3-Clause license and is available through package managers including PyPI and Conda. Source code, issue tracking, and contribution guidelines are hosted on GitHub repositories aligned with best practices from Open-source software stewardship and supported by continuous integration tools such as Travis CI and GitHub Actions. Commercial entities may integrate Bokeh into proprietary stacks, observing the permissive terms used by many NumFOCUS-associated projects.
Category:Data visualization software