Represent transformations of data to happen on the client (browser) side.
CustomJSTransform
Bases: bokeh.models.transforms.Transform
bokeh.models.transforms.Transform
Apply a custom defined transform to data.
Warning
The explicit purpose of this Bokeh Model is to embed raw JavaScript code for a browser to execute. If any part of the code is derived from untrusted user inputs, then you must take appropriate care to sanitize the user input prior to passing to Bokeh.
args
property type: Dict ( String , AnyRef )
Dict
String
AnyRef
A mapping of names to Python objects. In particular those can be bokeh’s models. These objects are made available to the transform’ code snippet as the values of named parameters to the callback.
func
property type: String
A snippet of JavaScript code to transform a single value. The variable x will contain the untransformed value and can be expected to be present in the function namespace at render time. The snippet will be into the body of a function and therefore requires a return statement.
x
Example:
func = ''' return Math.floor(x) + 0.5 '''
use_strict
property type: Bool
Bool
Enables or disables automatic insertion of "use strict"; into func or v_func.
"use strict";
v_func
A snippet of JavaScript code to transform an array of values. The variable xs will contain the untransformed array and can be expected to be present in the function namespace at render time. The snippet will be into the body of a function and therefore requires a return statement.
xs
v_func = ''' var new_xs = new Array(xs.length) for(var i = 0; i < xs.length; i++) { new_xs[i] = xs[i] + 0.5 } return new_xs '''
The vectorized function, v_func, must return an array of the same length as the input xs array.
from_coffeescript
Create a CustomJSTransform instance from a pair of CoffeeScript snippets. The function bodies are translated to JavaScript functions using node and therefore require return statements.
The func snippet namespace will contain the variable x (the untransformed value) at render time. The v_func snippet namespace will contain the variable xs (the untransformed vector) at render time.
func = "return Math.cos(x)" v_func = "return [Math.cos(x) for x in xs]" transform = CustomJSTransform.from_coffeescript(func, v_func)
func (str) – a coffeescript snippet to transform a single x value
v_func (str) – a coffeescript snippet function to transform a vector xs
from_py_func
Create a CustomJSTransform instance from a pair of Python functions. The function is translated to JavaScript using PScript.
The python functions must have no positional arguments. It’s possible to pass Bokeh models (e.g. a ColumnDataSource) as keyword arguments to the functions.
ColumnDataSource
The func function namespace will contain the variable x (the untransformed value) at render time. The v_func function namespace will contain the variable xs (the untransformed vector) at render time.
def transform(): from pscript.stubs import Math return Math.cos(x) def v_transform(): from pscript.stubs import Math return [Math.cos(x) for x in xs] customjs_transform = CustomJSTransform.from_py_func(transform, v_transform)
func (function) – a scalar function to transform a single x value
v_func (function) – a vectorized function to transform a vector xs
{ "args": {}, "func": "", "id": "14591", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "tags": [], "use_strict": false, "v_func": "" }
Dodge
Apply either fixed dodge amount to data.
range
property type: Instance ( Range )
Instance
Range
When applying Dodge to categorical data values, the corresponding FactorRange must be supplied as the range property.
FactorRange
value
property type: Float
Float
The amount to dodge the input data.
{ "id": "14596", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "range": null, "subscribed_events": [], "tags": [], "value": 0 }
Interpolator
Base class for interpolator transforms.
Interpolators return the value of a function which has been evaluated between specified (x, y) pairs of data. As an example, if two control point pairs were provided to the interpolator, a linear interpolaction at a specific value of ‘x’ would result in the value of ‘y’ which existed on the line connecting the two control points.
The control point pairs for the interpolators can be specified through either
A literal sequence of values:
interp = Interpolator(x=[1, 2, 3, 4, 5], y=[2, 5, 10, 12, 16])
or a pair of columns defined in a ColumnDataSource object:
interp = Interpolator(x="year", y="earnings", data=jewlery_prices))
This is the base class and is not intended to end use. Please see the documentation for the final derived classes (Jitter, LineraInterpolator, StepInterpolator) for more information on their specific methods of interpolation.
Jitter
LineraInterpolator
StepInterpolator
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.
clip
Determine if the interpolation should clip the result to include only values inside its predefined range. If this is set to False, it will return the most value of the closest point.
data
property type: Instance ( ColumnarDataSource )
ColumnarDataSource
Data which defines the source for the named columns if a string is passed to either the x or y parameters.
y
property type: Either ( String , Seq ( Float ) )
Either
Seq
Independent coordinate denoting the location of a point.
Dependant coordinate denoting the value of a point at a location.
{ "clip": true, "data": null, "id": "14599", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "tags": [], "x": null, "y": null }
Apply either a uniform or normally sampled random jitter to data.
distribution
property type: Enum ( JitterRandomDistribution )
Enum
JitterRandomDistribution
The random distribution upon which to pull the random scatter
mean
The central value for the random sample
When applying Jitter to Categorical data values, the corresponding FactorRange must be supplied as the range property.
width
The width (absolute for uniform distribution and sigma for the normal distribution) of the random sample.
{ "distribution": "uniform", "id": "14604", "js_event_callbacks": {}, "js_property_callbacks": {}, "mean": 0, "name": null, "range": null, "subscribed_events": [], "tags": [], "width": 1 }
LinearInterpolator
Bases: bokeh.models.transforms.Interpolator
bokeh.models.transforms.Interpolator
Compute a linear interpolation between the control points provided through the x, y, and data parameters.
{ "clip": true, "data": null, "id": "14609", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "tags": [], "x": null, "y": null }
Compute a step-wise interpolation between the points provided through the x, y, and data parameters.
mode
property type: Enum ( StepMode )
StepMode
Adjust the behavior of the returned value in relation to the control points. The parameter can assume one of three values:
after (default): Assume the y-value associated with the nearest x-value which is less than or equal to the point to transform.
after
before: Assume the y-value associated with the nearest x-value which is greater than the point to transform.
before
center: Assume the y-value associated with the nearest x-value to the point to transform.
center
{ "clip": true, "data": null, "id": "14610", "js_event_callbacks": {}, "js_property_callbacks": {}, "mode": "after", "name": null, "subscribed_events": [], "tags": [], "x": null, "y": null }
Transform
Bases: bokeh.model.Model
bokeh.model.Model
Base class for Transform models that represent a computation to be carried out on the client-side.
JavaScript implementations should implement the following methods:
compute: (x) -> # compute the transform of a single value v_compute: (xs) -> # compute the transform of an array of values
{ "id": "14612", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "tags": [] }