This docs on this page refers to a PREVIOUS VERSION. For the latest stable release, go to https://docs.bokeh.org/

Archived docs for versions <= 1.0.4 have had to be modified from their original published configuration, and may be missing some features (e.g. source listing)

All users are encourage to update to version 1.1 or later, as soon as they are able.

bokeh.models.expressions — Bokeh 0.12.14 documentation

Source code for 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:

.. code-block:: python

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

or using the ``expr`` convenience function:

.. code-block:: python

    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.

'''
from __future__ import absolute_import

from ..core.has_props import abstract
from ..core.properties import Seq, String
from ..model import Model

@abstract
[docs]class Expression(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: .. code-block: coffeescript v_compute: (source) -> # compute an array of values Note that the result of this call will be automatically saved and re-used for each ``source`` that is passed in. If a ``source`` is changed, then the saved value for that source is discarded, and the next call will re-compute (and save) a new value. If you wish to prevent this caching, you may implement ``_v_compute: (source)`` instead. ''' pass
[docs]class Stack(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 = Seq(String, default=[], help=""" A sequence of fields from a ``ColumnDataSource`` to sum (elementwise). For example: .. code-block:: python 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. """)