Find file History
Latest commit 21fbeae Jan 13, 2017 @mattpap mattpap committed with bryevdv Drop jquery from core bokehjs (#5630)
* Add PlotCanvas.canvas_overlays getter

* Beef up DOM.createElement() and add div, span, ...

* Use explicit code in TS API's show() instead of jquery

* Rewrite core/util/text without jquery

* Rewrite {document,embed}.coffee to use native APIs

* Remove unused imports of jquery and underscore

* Replace $(...) with native APIs (part 1)

* Move core/{util/->}dom.ts

* Update core/dom imports

* Pass DOM element to UIEvents constructor

* Don't specify `tagName: 'div'`, because it's the default

* Add more HTML elements

* Update Paragraph model's tests

* Add empty(), position() and offset() DOM helper functions

* Replace $.ajax() with native APIs

* Use proper code for replacing elements in

* Make width and height detection work without jquery

* Don't expose $el in TypeScript API

* Limit jquery-ui prefixing only to models that use it

* Use native element for canvas_overlays

* Make map_div a native element

* Replace $el.css({name: value}) with = value

* Use proper styling technique in

* Don't allow extra attributes in View._ensureElement()

* Replace some $el.append(...) with el.appendChild(...)

* Rewrite styling in

* Add show() and hide() for native DOM manipulation

* Drop more jquery from

* Make annotations free of jquery

* Make layouts free of jquery

* Make tools almost free of jquery

* Use native DOM elements in

* Replace $el -> el when changing cursor in HoverTool

* Don't use jquery in View._removeElement()

* Use explicit px unit when setting {top, left, width, height}

* Don't override span() in

* Directly set style properties instead of using setProperty()

* Rename {fill_color->colors} in plotting/file/

* Replace jquery-mousewheel with equivalent native code

This takes only normalization part and not backwards compatibility
code. Only `wheel` (standard) event is allowed. This event is
currently available in all web browsers we support.

* Remove initial empty line from

* Remove import of jquery from

* Use appendChild() instead of append() in

* Don't use delegated events in

* Move events delegation code to from BackboneView to Widget

* Move $el from BackboneView to Wiget

This effectively makes core bokehjs independent of jquery.

* Update tests after removal of $el

* Rewrite core/util/wheel.ts to make it type check

* Skip unreliable tests in models/plots/

* Remove debugger statement from test/core/

* Show variable name in "unknown edit variable" error

* Don't pollute test output with useless information

* Move canvas save to image code to PlotCanvasView

This way you can issue `Bokeh.index[ID].save("plot.png")`.

* Don't use jquery in examples/models/

* Make tooltips display in correct locations again

* Make example/models/ work again

* Pin pytest-html to version 1.7

* Replace $(...).detach() with native code

* Add missing px unit when setting CSS line width

* Add JQueryable trait to allow models use jquery

* Guard against detached element in View._removeElement()

* Set encoding to utf-8 when decoding output from node/npm

* Use --no-progress flag to disable progress bar in npm

* Use 2x icon size in font-awesome custom model example

* Use <span> instead of <i> as font-awesome's element type

* Use Date() instead of window.Date() in

* Element.classList is read-only, so assign to className

* Fix creation of TileRenderer's attribution element

* Drop Bokeh.$ and remove jquery as a core dependency

* Remove jquery and jquery-ui's typings

* Fix syntax in typings/models/souces.d.ts

* Use @el instead of @$el in app/surface3d example

* Replace jquery with native code in

* Use @el instead of @$el in non-widget examples in docs

* Update sizes in bokehjs/test/

* Rewrite font-awesome custom model without jquery

* update migration guide

Bokeh Examples

Examples in this repository

This directory contains many examples of different ways to use Bokeh. As Bokeh has been evolving fast, it is important that you ensure that the version of an example you're looking at matches the version of Bokeh you are running.


This directory contains examples of Bokeh Apps, which are simple and easy to create web applications for data visualization or exploration.


This directory includes examples that use the high level bokeh.charts interface of Bokeh. This interface can be for easily building high-level statistical or scientific charts such as histograms, bar charts or box plots.


This directory contains examples of plots that use Bokeh's compatibility layer to allow users to create Bokeh plots using other plotting libraries such as matplotlib, seaborn, or


This directory includes examples that show how to embed Bokeh plots and widget in HTML documents.


The examples in this directory are mini-tutorials that demonstrate and explain some particular aspect of Bokeh capability (such as linking and brushing), or walk through a particular example in additional detail.


This directory contains examples that use the lowest-level bokeh.models interface. For more understanding of the bokeh.models interface see the concepts section of the user_guide


This directory contains example using the bokeh.plotting interface. There are three subdirectories illustrating output in three different modes:

  • file examples that output to static HTML files

  • notebook examples that display inline in Jupyter notebooks

  • server examples that send output to a Bokeh server, using the python client library for the server


This directory contains examples that demonstrate the various glyphs that have support for WebGL rendering. Most of these examples have a testing purpose, e.g. to compare the appearance of the WebGL glyph with its regular appearance, or to test another aspect of WebGL (e.g. blending of transparent glyphs).

Other sources for examples