mappers¶
Models for mapping values from one range or space to another in the client.
Mappers (as opposed to scales) are not presumed to be invertible.
CategoricalColorMapper¶
- class CategoricalColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.CategoricalMapper
,bokeh.models.mappers.ColorMapper
Map categorical factors to colors.
Values that are passed to this mapper that are not in the factors list will be mapped to
nan_color
.JSON Prototype
{ "end": null, "id": "1739", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "nan_color": "gray", "start": 0, "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from : py: class:CategoricalMapper
A sequence of factors / categories that map to the some target range.
A start index to "slice" data factors with before mapping.
A start index to "slice" data factors with before mapping.
Inherited from : py: class:ColorMapper
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:ColorMapper
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- end = None¶
-
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2017", "marketing"]
, then settingend=1
will perform color mapping only based on the first sub-factor (i.e. in this case based on the year"2016"
or"2017"
)If
None
then all sub-factors fromstart
to the end of the factor will be used for color mapping.
- factors = Undefined¶
- Type
FactorSeq
A sequence of factors / categories that map to the some target range. For example the following color mapper:
mapper = CategoricalColorMapper(palette=["red", "blue"], factors=["foo", "bar"])
will map the factor
"foo"
to red and the factor"bar"
to blue.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- start = 0¶
- Type
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2016", "marketing"]
, then settingstart=1
will perform color mapping only based on the second sub-factor (i.e. in this case based on the department"sales"
or"marketing"
)
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
CategoricalMapper¶
- class CategoricalMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.Mapper
Base class for mappers that map categorical factors to other values.
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
{ "end": null, "id": "1748", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "start": 0, "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
A sequence of factors / categories that map to the some target range.
A start index to "slice" data factors with before mapping.
A start index to "slice" data factors with before mapping.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
(**kwargs)__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
(**kwargs)__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
(**kwargs)Inherited from : py: class:PropertyCallbackManager
__init__
(**kwargs)on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
(**kwargs)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- end = None¶
-
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2017", "marketing"]
, then settingend=1
will perform color mapping only based on the first sub-factor (i.e. in this case based on the year"2016"
or"2017"
)If
None
then all sub-factors fromstart
to the end of the factor will be used for color mapping.
- factors = Undefined¶
- Type
FactorSeq
A sequence of factors / categories that map to the some target range. For example the following color mapper:
mapper = CategoricalColorMapper(palette=["red", "blue"], factors=["foo", "bar"])
will map the factor
"foo"
to red and the factor"bar"
to blue.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- start = 0¶
- Type
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2016", "marketing"]
, then settingstart=1
will perform color mapping only based on the second sub-factor (i.e. in this case based on the department"sales"
or"marketing"
)
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
CategoricalMarkerMapper¶
- class CategoricalMarkerMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.CategoricalMapper
Map categorical factors to marker types.
Values that are passed to this mapper that are not in the factors list will be mapped to
default_value
.Note
This mappers is primarily only useful with the
Scatter
marker glyph that be parameterized by marker type.JSON Prototype
{ "default_value": "circle", "end": null, "id": "1755", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "start": 0, "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
A sequence of marker types to use as the target for mapping.
A marker type to use in case an unrecognized factor is passed in to be mapped.
Inherited from : py: class:CategoricalMapper
A sequence of factors / categories that map to the some target range.
A start index to "slice" data factors with before mapping.
A start index to "slice" data factors with before mapping.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
(**kwargs)__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
(**kwargs)__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
(**kwargs)Inherited from : py: class:PropertyCallbackManager
__init__
(**kwargs)on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
(**kwargs)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- default_value = 'circle'¶
- Type
A marker type to use in case an unrecognized factor is passed in to be mapped.
- end = None¶
-
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2017", "marketing"]
, then settingend=1
will perform color mapping only based on the first sub-factor (i.e. in this case based on the year"2016"
or"2017"
)If
None
then all sub-factors fromstart
to the end of the factor will be used for color mapping.
- factors = Undefined¶
- Type
FactorSeq
A sequence of factors / categories that map to the some target range. For example the following color mapper:
mapper = CategoricalColorMapper(palette=["red", "blue"], factors=["foo", "bar"])
will map the factor
"foo"
to red and the factor"bar"
to blue.
- markers = Undefined¶
- Type
A sequence of marker types to use as the target for mapping.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- start = 0¶
- Type
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2016", "marketing"]
, then settingstart=1
will perform color mapping only based on the second sub-factor (i.e. in this case based on the department"sales"
or"marketing"
)
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
CategoricalPatternMapper¶
- class CategoricalPatternMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.CategoricalMapper
Map categorical factors to hatch fill patterns.
Values that are passed to this mapper that are not in the factors list will be mapped to
default_value
.Added in version 1.1.1
JSON Prototype
{ "default_value": " ", "end": null, "id": "1764", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "start": 0, "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
A sequence of marker types to use as the target for mapping.
A hatch pattern to use in case an unrecognized factor is passed in to be mapped.
Inherited from : py: class:CategoricalMapper
A sequence of factors / categories that map to the some target range.
A start index to "slice" data factors with before mapping.
A start index to "slice" data factors with before mapping.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
(**kwargs)__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
(**kwargs)__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
(**kwargs)Inherited from : py: class:PropertyCallbackManager
__init__
(**kwargs)on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
(**kwargs)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- default_value = ' '¶
- Type
HatchPatternType
A hatch pattern to use in case an unrecognized factor is passed in to be mapped.
- end = None¶
-
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2017", "marketing"]
, then settingend=1
will perform color mapping only based on the first sub-factor (i.e. in this case based on the year"2016"
or"2017"
)If
None
then all sub-factors fromstart
to the end of the factor will be used for color mapping.
- factors = Undefined¶
- Type
FactorSeq
A sequence of factors / categories that map to the some target range. For example the following color mapper:
mapper = CategoricalColorMapper(palette=["red", "blue"], factors=["foo", "bar"])
will map the factor
"foo"
to red and the factor"bar"
to blue.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- patterns = Undefined¶
- Type
Seq
(HatchPatternType
)
A sequence of marker types to use as the target for mapping.
- start = 0¶
- Type
A start index to “slice” data factors with before mapping.
For example, if the data to color map consists of 2-level factors such as
["2016", "sales"]
and["2016", "marketing"]
, then settingstart=1
will perform color mapping only based on the second sub-factor (i.e. in this case based on the department"sales"
or"marketing"
)
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
ColorMapper¶
- class ColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.Mapper
Base class for color mapper types.
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": "1773", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "nan_color": "gray", "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
ContinuousColorMapper¶
- class ContinuousColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.ColorMapper
Base class for continuous color mapper types.
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
{ "domain": [], "high": null, "high_color": null, "id": "1779", "js_event_callbacks": {}, "js_property_callbacks": {}, "low": null, "low_color": null, "name": null, "nan_color": "gray", "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
A collection of glyph renderers to pool data from for establishing data metrics.
The minimum value of the range to map into the palette.
The maximum value of the range to map into the palette.
Color to be used if data is lower than
low
value.Color to be used if data is higher than
high
value.Inherited from : py: class:ColorMapper
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:ColorMapper
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- domain = []¶
- Type
A collection of glyph renderers to pool data from for establishing data metrics. If empty, mapped data will be used instead.
- high = None¶
-
The maximum value of the range to map into the palette. Values above this are clamped to
high
. IfNone
, the value is inferred from data.
- high_color = None¶
-
Color to be used if data is higher than
high
value. If None, values higher thanhigh
are mapped to the last color in the palette.
- low = None¶
-
The minimum value of the range to map into the palette. Values below this are clamped to
low
. IfNone
, the value is inferred from data.
- low_color = None¶
-
Color to be used if data is lower than
low
value. If None, values lower thanlow
are mapped to the first color in the palette.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
EqHistColorMapper¶
- class EqHistColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.ScanningColorMapper
JSON Prototype
{ "bins": 65536, "domain": [], "high": null, "high_color": null, "id": "1790", "js_event_callbacks": {}, "js_property_callbacks": {}, "low": null, "low_color": null, "name": null, "nan_color": "gray", "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
Number of histogram bins
Inherited from : py: class:ContinuousColorMapper
A collection of glyph renderers to pool data from for establishing data metrics.
The minimum value of the range to map into the palette.
The maximum value of the range to map into the palette.
Color to be used if data is lower than
low
value.Color to be used if data is higher than
high
value.Inherited from : py: class:ColorMapper
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:ColorMapper
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- domain = []¶
- Type
A collection of glyph renderers to pool data from for establishing data metrics. If empty, mapped data will be used instead.
- high = None¶
-
The maximum value of the range to map into the palette. Values above this are clamped to
high
. IfNone
, the value is inferred from data.
- high_color = None¶
-
Color to be used if data is higher than
high
value. If None, values higher thanhigh
are mapped to the last color in the palette.
- low = None¶
-
The minimum value of the range to map into the palette. Values below this are clamped to
low
. IfNone
, the value is inferred from data.
- low_color = None¶
-
Color to be used if data is lower than
low
value. If None, values lower thanlow
are mapped to the first color in the palette.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
LinearColorMapper¶
- class LinearColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.ContinuousColorMapper
Map numbers in a range [low, high] linearly into a sequence of colors (a palette).
For example, if the range is [0, 99] and the palette is
['red', 'green', 'blue']
, the values would be mapped as follows:x < 0 : 'red' # values < low are clamped 0 <= x < 33 : 'red' 33 <= x < 66 : 'green' 66 <= x < 99 : 'blue' 99 <= x : 'blue' # values > high are clamped
JSON Prototype
{ "domain": [], "high": null, "high_color": null, "id": "1802", "js_event_callbacks": {}, "js_property_callbacks": {}, "low": null, "low_color": null, "name": null, "nan_color": "gray", "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from : py: class:ContinuousColorMapper
A collection of glyph renderers to pool data from for establishing data metrics.
The minimum value of the range to map into the palette.
The maximum value of the range to map into the palette.
Color to be used if data is lower than
low
value.Color to be used if data is higher than
high
value.Inherited from : py: class:ColorMapper
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:ColorMapper
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- domain = []¶
- Type
A collection of glyph renderers to pool data from for establishing data metrics. If empty, mapped data will be used instead.
- high = None¶
-
The maximum value of the range to map into the palette. Values above this are clamped to
high
. IfNone
, the value is inferred from data.
- high_color = None¶
-
Color to be used if data is higher than
high
value. If None, values higher thanhigh
are mapped to the last color in the palette.
- low = None¶
-
The minimum value of the range to map into the palette. Values below this are clamped to
low
. IfNone
, the value is inferred from data.
- low_color = None¶
-
Color to be used if data is lower than
low
value. If None, values lower thanlow
are mapped to the first color in the palette.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
LogColorMapper¶
- class LogColorMapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.mappers.ContinuousColorMapper
Map numbers in a range [low, high] into a sequence of colors (a palette) on a natural logarithm scale.
For example, if the range is [0, 25] and the palette is
['red', 'green', 'blue']
, the values would be mapped as follows:x < 0 : 'red' # values < low are clamped 0 <= x < 2.72 : 'red' # math.e ** 1 2.72 <= x < 7.39 : 'green' # math.e ** 2 7.39 <= x < 20.09 : 'blue' # math.e ** 3 20.09 <= x : 'blue' # values > high are clamped
Warning
The
LogColorMapper
only works for images with scalar values that are non-negative.JSON Prototype
{ "domain": [], "high": null, "high_color": null, "id": "1813", "js_event_callbacks": {}, "js_property_callbacks": {}, "low": null, "low_color": null, "name": null, "nan_color": "gray", "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from : py: class:ContinuousColorMapper
A collection of glyph renderers to pool data from for establishing data metrics.
The minimum value of the range to map into the palette.
The maximum value of the range to map into the palette.
Color to be used if data is lower than
low
value.Color to be used if data is higher than
high
value.Inherited from : py: class:ColorMapper
A sequence of colors to use as the target palette for mapping.
Color to be used if data is NaN or otherwise not mappable.
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:ColorMapper
__init__
([palette])Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
([palette])__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
([palette])__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
([palette])Inherited from : py: class:PropertyCallbackManager
__init__
([palette])on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
([palette])on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- domain = []¶
- Type
A collection of glyph renderers to pool data from for establishing data metrics. If empty, mapped data will be used instead.
- high = None¶
-
The maximum value of the range to map into the palette. Values above this are clamped to
high
. IfNone
, the value is inferred from data.
- high_color = None¶
-
Color to be used if data is higher than
high
value. If None, values higher thanhigh
are mapped to the last color in the palette.
- low = None¶
-
The minimum value of the range to map into the palette. Values below this are clamped to
low
. IfNone
, the value is inferred from data.
- low_color = None¶
-
Color to be used if data is lower than
low
value. If None, values lower thanlow
are mapped to the first color in the palette.
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- nan_color = 'gray'¶
- Type
Color to be used if data is NaN or otherwise not mappable.
Acceptable values are:
any of the named CSS colors, e.g
'green'
,'indigo'
RGB(A) hex strings, e.g.,
'#FF0000'
,'#44444444'
CSS4 color strings, e.g.,
'rgba(255, 0, 127, 0.6)'
,'rgb(0 127 0 / 1.0)'
, or'hsl(60deg 100% 50% / 1.0)'
a 3-tuple of integers (r, g, b) between 0 and 255
a 4-tuple of (r, g, b, a) where r, g, b are integers between 0 and 255, and a is between 0 and 1
a 32-bit unsigned integer using the 0xRRGGBBAA byte order pattern
- palette = Undefined¶
-
A sequence of colors to use as the target palette for mapping.
This property can also be set as a
String
, to the name of any of the palettes shown in bokeh.palettes.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.
Mapper¶
- class Mapper(*args, **kwargs)[source]¶
Bases:
bokeh.models.transforms.Transform
Base class for mappers.
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": "1824", "js_event_callbacks": {}, "js_property_callbacks": {}, "name": null, "subscribed_events": [], "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from : py: class:Model
model_class_reverse_map
id
ref
A Bokeh protocol "structure" of this model, i.e. a dict of the form:.
An arbitrary, user-supplied name for this model.
An optional list of arbitrary, user-supplied values to attach to this model.
js_event_callbacks
A mapping of event names to lists of
CustomJS
callbacks.subscribed_events
List of events that are subscribed to by Python callbacks.
js_property_callbacks
A mapping of attribute names to lists of
CustomJS
callbacks, to be set up on BokehJS side when the document is created.Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
Inherited from : py: class:Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args, **kwargs)__init__
(**kwargs)__str__
()Return str(self).
__repr__
()Return repr(self).
destroy
()Clean up references to the document and property
js_on_event
(event, *callbacks)js_link
(attr, other, other_attr[, attr_selector])Link two Bokeh model properties using JavaScript.
js_on_change
(event, *callbacks)Attach a
CustomJS
callback to an arbitrary BokehJS model event.on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.Returns all
Models
that this object has references to.select
(selector)Query this object and all of its references for objects that match the given selector.
select_one
(selector)Query this object and all of its references for objects that match the given selector.
set_select
(selector, updates)Update objects that match a given selector with the specified attribute/value updates.
to_json
(include_defaults)Returns a dictionary of the attributes of this object, containing only "JSON types" (string, number, boolean, none, dict, list).
to_json_string
(include_defaults)Returns a JSON string encoding the attributes of this object.
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:HasProps
__init__
(**kwargs)__setattr__
(name, value)Intercept attribute setting on HasProps in order to special case a few situations:
__getattr__
(name)Intercept attribute setting on HasProps in order to special case a few situations:
__str__
()Return str(self).
__repr__
()Return repr(self).
equals
(other)Structural equality of models.
static_to_serializable
(serializer)to_serializable
(serializer)set_from_json
(name, json, *[, models, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
update_from_json
(json_attributes, *[, ...])Updates the object's properties from a JSON attributes dictionary.
lookup
(name, *[, raises])Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.properties
(*[, _with_props])Collect the names of properties on this class.
Collect the names of all properties on this class that also have references.
Collect the names of all
DataSpec
properties on this class.properties_with_values
(*[, ...])Collect a dict mapping property names to their values.
query_properties_with_values
(query, *[, ...])Query the properties values of
HasProps
instances with a predicate.Get any theme-provided overrides.
apply_theme
(property_values)Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
Remove any themed values and restore defaults.
Inherited from : py: class:HasDocumentRef
__init__
(**kwargs)Inherited from : py: class:PropertyCallbackManager
__init__
(**kwargs)on_change
(attr, *callbacks)Add a callback on this object to trigger when
attr
changes.remove_on_change
(attr, *callbacks)Remove a callback from this object
trigger
(attr, old, new[, hint, setter])Inherited from : py: class:EventCallbackManager
__init__
(**kwargs)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- name = None¶
-
An arbitrary, user-supplied name for this model.
This name can be useful when querying the document to retrieve specific Bokeh models.
>>> plot.circle([1,2,3], [4,5,6], name="temp") >>> plot.select(name="temp") [GlyphRenderer(id='399d53f5-73e9-44d9-9527-544b761c7705', ...)]
Note
No uniqueness guarantees or other conditions are enforced on any names that are provided, nor is the name used directly by Bokeh for any reason.
- syncable = True¶
- Type
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser. Setting to
False
may be useful to reduce network traffic when dealing with frequently updated objects whose updated values we don’t need.Note
Setting this property to
False
will prevent anyon_change()
callbacks on this object from triggering. However, any JS-side callbacks will still work.
- tags = []¶
- Type
An optional list of arbitrary, user-supplied values to attach to this model.
This data can be useful when querying the document to retrieve specific Bokeh models:
>>> r = plot.circle([1,2,3], [4,5,6]) >>> r.tags = ["foo", 10] >>> plot.select(tags=['foo', 10]) [GlyphRenderer(id='1de4c3df-a83d-480a-899b-fb263d3d5dd9', ...)]
Or simply a convenient way to attach any necessary metadata to a model that can be accessed by
CustomJS
callbacks, etc.Note
No uniqueness guarantees or other conditions are enforced on any tags that are provided, nor are the tags used directly by Bokeh for any reason.
- apply_theme(property_values: Dict[str, Any]) None ¶
Apply a set of theme values which will be used rather than defaults, but will not override application-set values.
The passed-in dictionary may be kept around as-is and shared with other instances to save memory (so neither the caller nor the
HasProps
instance should modify it).- Parameters
property_values (dict) – theme values to use in place of defaults
- Returns
None
- classmethod dataspecs() Dict[str, DataSpec] ¶
Collect the names of all
DataSpec
properties on this class.This method always traverses the class hierarchy and includes properties defined on any parent classes.
- equals(other: bokeh.core.has_props.HasProps) bool ¶
Structural equality of models.
- Parameters
other (HasProps) – the other instance to compare to
- Returns
True, if properties are structurally equal, otherwise False
- js_link(attr: str, other: bokeh.model.model.Model, other_attr: str, attr_selector: Optional[Union[int, str]] = None) None ¶
Link two Bokeh model properties using JavaScript.
This is a convenience method that simplifies adding a CustomJS callback to update one Bokeh model property whenever another changes value.
- Parameters
Added in version 1.1
- Raises
Examples
This code with
js_link
:select.js_link('value', plot, 'sizing_mode')
is equivalent to the following:
from bokeh.models import CustomJS select.js_on_change('value', CustomJS(args=dict(other=plot), code="other.sizing_mode = this.value" ) )
Additionally, to use attr_selector to attach the left side of a range slider to a plot’s x_range:
range_slider.js_link('value', plot.x_range, 'start', attr_selector=0)
which is equivalent to:
from bokeh.models import CustomJS range_slider.js_on_change('value', CustomJS(args=dict(other=plot.x_range), code="other.start = this.value[0]" ) )
- js_on_change(event: str, *callbacks: JSEventCallback) None ¶
Attach a
CustomJS
callback to an arbitrary BokehJS model event.On the BokehJS side, change events for model properties have the form
"change:property_name"
. As a convenience, if the event name passed to this method is also the name of a property on the model, then it will be prefixed with"change:"
automatically:# these two are equivalent source.js_on_change('data', callback) source.js_on_change('change:data', callback)
However, there are other kinds of events that can be useful to respond to, in addition to property change events. For example to run a callback whenever data is streamed to a
ColumnDataSource
, use the"stream"
event on the source:source.js_on_change('streaming', callback)
- classmethod lookup(name: str, *, raises: bool = True) Optional[bokeh.core.property.descriptors.PropertyDescriptor[Any]] ¶
Find the
PropertyDescriptor
for a Bokeh property on a class, given the property name.- Parameters
- Returns
descriptor for property named
name
- Return type
- on_change(attr: str, *callbacks: PropertyCallback) None ¶
Add a callback on this object to trigger when
attr
changes.- Parameters
attr (str) – an attribute name on this object
*callbacks (callable) – callback functions to register
- Returns
None
Example:
widget.on_change('value', callback1, callback2, ..., callback_n)
- on_event(event: Union[str, Type[bokeh.events.Event]], *callbacks: Union[Callable[[bokeh.events.Event], None], Callable[[], None]]) None ¶
Run callbacks when the specified event occurs on this Model
Not all Events are supported for all Models. See specific Events in bokeh.events for more information on which Models are able to trigger them.
- classmethod properties(*, _with_props: bool = False) Union[Set[str], Dict[str, Property[Any]]] ¶
Collect the names of properties on this class.
Warning
In a future version of Bokeh, this method will return a dictionary mapping property names to property objects. To future-proof this current usage of this method, wrap the return value in
list
.- Returns
property names
- classmethod properties_with_refs() Dict[str, Property[Any]] ¶
Collect the names of all properties on this class that also have references.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
- properties_with_values(*, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Collect a dict mapping property names to their values.
This method always traverses the class hierarchy and includes properties defined on any parent classes.
Non-serializable properties are skipped and property values are in “serialized” format which may be slightly different from the values you would normally read from the properties; the intent of this method is to return the information needed to losslessly reconstitute the object instance.
- query_properties_with_values(query: Callable[[bokeh.core.property.descriptors.PropertyDescriptor[Any]], bool], *, include_defaults: bool = True, include_undefined: bool = False) Dict[str, Any] ¶
Query the properties values of
HasProps
instances with a predicate.- Parameters
query (callable) – A callable that accepts property descriptors and returns True or False
include_defaults (bool, optional) – Whether to include properties that have not been explicitly set by a user (default: True)
- Returns
mapping of property names and values for matching properties
- Return type
- references() Set[bokeh.model.model.Model] ¶
Returns all
Models
that this object has references to.
- remove_on_change(attr: str, *callbacks: Callable[[str, Any, Any], None]) None ¶
Remove a callback from this object
- select(selector: SelectorType) Iterable[Model] ¶
Query this object and all of its references for objects that match the given selector.
- Parameters
selector (JSON-like) –
- Returns
seq[Model]
- select_one(selector: SelectorType) Model | None ¶
Query this object and all of its references for objects that match the given selector. Raises an error if more than one object is found. Returns single matching object, or None if nothing is found :param selector: :type selector: JSON-like
- Returns
Model
- set_from_json(name: str, json: JSON, *, models: Dict[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Set a property value on this object from JSON.
- Parameters
name – (str) : name of the attribute to set
json – (JSON-value) : value to set to the attribute to
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- set_select(selector: Type[Model] | SelectorType, updates: Dict[str, Unknown]) None ¶
Update objects that match a given selector with the specified attribute/value updates.
- Parameters
selector (JSON-like) –
updates (dict) –
- Returns
None
- themed_values() Optional[Dict[str, Any]] ¶
Get any theme-provided overrides.
Results are returned as a dict from property name to value, or
None
if no theme overrides any values for this instance.- Returns
dict or None
- to_json(include_defaults: bool) JSON ¶
Returns a dictionary of the attributes of this object, containing only “JSON types” (string, number, boolean, none, dict, list).
References to other objects are serialized as “refs” (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- to_json_string(include_defaults: bool) str ¶
Returns a JSON string encoding the attributes of this object.
References to other objects are serialized as references (just the object ID and type info), so the deserializer will need to separately have the full attributes of those other objects.
There’s no corresponding
from_json_string()
because to deserialize an object is normally done in the context of a Document (since the Document can resolve references).For most purposes it’s best to serialize and deserialize entire documents.
- Parameters
include_defaults (bool) – whether to include attributes that haven’t been changed from the default
- trigger(attr: str, old: Unknown, new: Unknown, hint: DocumentPatchedEvent | None = None, setter: Setter | None = None) None ¶
- update(**kwargs: Any) None ¶
Updates the object’s properties from the given keyword arguments.
- Returns
None
Examples
The following are equivalent:
from bokeh.models import Range1d r = Range1d # set properties individually: r.start = 10 r.end = 20 # update properties together: r.update(start=10, end=20)
- update_from_json(json_attributes: Dict[str, JSON], *, models: Mapping[ID, HasProps] | None = None, setter: Setter | None = None) None ¶
Updates the object’s properties from a JSON attributes dictionary.
- Parameters
json_attributes – (JSON-dict) : attributes and values to update
models (dict or None, optional) –
Mapping of model ids to models (default: None)
This is needed in cases where the attributes to update also have values that have references.
setter (ClientSession or ServerSession or None, optional) –
This is used to prevent “boomerang” updates to Bokeh apps.
In the context of a Bokeh server application, incoming updates to properties will be annotated with the session that is doing the updating. This value is propagated through any subsequent change notifications that the update triggers. The session can compare the event setter to itself, and suppress any updates that originate from itself.
- Returns
None
- property struct: bokeh.core.types.ReferenceJson¶
A Bokeh protocol “structure” of this model, i.e. a dict of the form:
{ 'type' : << view model name >> 'id' : << unique model id >> }
Additionally there may be a subtype field if this model is a subtype.