bokeh.models.expressions

Represent array expressions to be computed on the client (browser) side by BokehJS.

Expression models are useful as DataSpec values when it is desired that the array values be computed in the browser:

p.circle(x={'expr': some_expression}, ...)

or using the expr convenience function:

from bokeh.core.properties import expr

p.circle(x=expr(some_expression), ...)

In this case, the values of the x coordinates will be computed in the browser by the JavaScript implementation of some_expression using a ColumnDataSource as input.

class Expression(**kwargs)[source]

Bases: bokeh.model.Model

Base class for Expression models that represent a computation to be carried out on the client-side.

JavaScript implementations should implement the following methods:

Note

If you wish for results to be cached per source, and updated only if the source changes, implement _v_compute: (souce) instead.

Note

This is an abstract base class used to help organize the hierarchy of Bokeh model types. It is not useful to instantiate on its own.

JSON Prototype
{
  "id": "459ff960-1e32-4b69-a004-467a52bf6d02",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "subscribed_events": [],
  "tags": []
}
class Stack(**kwargs)[source]

Bases: bokeh.models.expressions.Expression

An expression for generating arrays by summing different columns from a ColumnDataSource.

This expression is useful for implementing stacked bar charts at a low level.

fields

property type: Seq ( String )

A sequence of fields from a ColumnDataSource to sum (elementwise). For example:

Stack(fields=['sales', 'marketing'])

Will compute an array of values (in the browser) by adding the elements of the 'sales' and 'marketing' columns of a data source.

JSON Prototype
{
  "fields": [],
  "id": "7c82b2d0-663a-47c5-9713-6e36d8fa7170",
  "js_event_callbacks": {},
  "js_property_callbacks": {},
  "name": null,
  "subscribed_events": [],
  "tags": []
}