tools#
Bokeh comes with a number of interactive tools.
There are five types of tool interactions:
|
|
|
|
|
For the first three comprise the category of gesture tools, and only one tool for each gesture can be active at any given time. The active tool is indicated on the toolbar by a highlight next to the tool. Actions are immediate or modal operations that are only activated when their button in the toolbar is pressed. Inspectors are passive tools that merely report information or annotate the plot in some way, and may always be active regardless of what other tools are currently active.
- class ActionTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
Bases:
Tool
A base class for tools that are buttons in the toolbar.
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
{ "description": null, "icon": null, "id": "p125967", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "name": null, "subscribed_events": { "type": "set" }, "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- 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.
- classmethod descriptors() list[PropertyDescriptor[Any]] #
List of property descriptors in the order of definition.
- equals(other: 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: Model, other_attr: str, attr_selector: int | str | None = 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) PropertyDescriptor[Any] | None #
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: str | Type[Event], *callbacks: EventCallback) 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 parameters() list[Parameter] #
Generate Python
Parameter
values suitable for functions that are derived from the glyph.- Returns:
list(Parameter)
- classmethod properties(*, _with_props: bool = False) 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[[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:
- 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, value: Any, *, 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, Any]) None #
Update objects that match a given selector with the specified attribute/value updates.
- Parameters:
selector (JSON-like) –
updates (dict) –
- Returns:
None
- themed_values() dict[str, Any] | None #
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_serializable(serializer: Serializer) ObjectRefRep #
Converts this object to a serializable representation.
- trigger(attr: str, old: Any, new: Any, 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)
- class BoxEditTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
-
Allows drawing, dragging and deleting
Rect
glyphs on one or more renderers by editing the underlyingColumnDataSource
data. Like other drawing tools, the renderers that are to be edited must be supplied explicitly as a list. When drawing a new box the data will always be added to theColumnDataSource
on the first supplied renderer.The tool will modify the columns on the data source corresponding to the
x
,y
,width
andheight
values of the glyph. Any additional columns in the data source will be padded withempty_value
, when adding a new box.The supported actions include:
Add box: Hold shift then click and drag anywhere on the plot or double tap once to start drawing, move the mouse and double tap again to finish drawing.
Move box: Click and drag an existing box, the box will be dropped once you let go of the mouse button.
Delete box: Tap a box to select it then press <<backspace>> key while the mouse is within the plot area.
To Move or Delete multiple boxes at once:
Move selection: Select box(es) with <<shift>>+tap (or another selection tool) then drag anywhere on the plot. Selecting and then dragging on a specific box will move both.
Delete selection: Select box(es) with <<shift>>+tap (or another selection tool) then press <<backspace>> while the mouse is within the plot area.
JSON Prototype
{ "description": null, "dimensions": "both", "icon": null, "id": "p125973", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "name": null, "num_objects": 0, "renderers": [], "subscribed_events": { "type": "set" }, "syncable": true, "tags": [] }
Public Data Attributes:
Which dimensions the box drawing is to be free in.
Defines a limit on the number of boxes that can be drawn.
Inherited from
EditTool
Defines the value to insert on non-coordinate columns when a new glyph is inserted into the
ColumnDataSource
columns, e.g.An explicit list of renderers corresponding to glyphs that may be edited.
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, dimensions, empty_value, icon, ...])Inherited from
EditTool
__init__
(*[, empty_value, icon, name, ...])Inherited from
Drag
__init__
(*[, icon, name, syncable, tags])Inherited from
Tap
__init__
(*[, icon, name, syncable, tags])Inherited from
GestureTool
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- dimensions = 'both'#
- Type:
Which dimensions the box drawing is to be free in. By default, users may freely draw boxes with any dimensions. If only “width” is set, the box will be constrained to span the entire vertical space of the plot, only the horizontal dimension can be controlled. If only “height” is set, the box will be constrained to span the entire horizontal space of the plot, and the vertical dimension can be controlled.
- empty_value = Undefined#
-
Defines the value to insert on non-coordinate columns when a new glyph is inserted into the
ColumnDataSource
columns, e.g. when a circle glyph defines ‘x’, ‘y’ and ‘color’ columns, adding a new point will add the x and y-coordinates to ‘x’ and ‘y’ columns and the color column will be filled with the defined empty value.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- 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.
- num_objects = 0#
- Type:
Defines a limit on the number of boxes that can be drawn. By default there is no limit on the number of objects, but if enabled the oldest drawn box will be dropped to make space for the new box being added.
- renderers = []#
- Type:
An explicit list of renderers corresponding to glyphs that may be edited.
Note
The kind of renderer will typically depend on the specific type of the edit tool subclass. For instance,
PointDrawTool
expects renderers forScatter
glyphs, whileBoxEditTool
expects renderers forRect
glyphs, etc.
- 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.
- classmethod descriptors() list[PropertyDescriptor[Any]] #
List of property descriptors in the order of definition.
- equals(other: 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: Model, other_attr: str, attr_selector: int | str | None = 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) PropertyDescriptor[Any] | None #
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: str | Type[Event], *callbacks: EventCallback) 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 parameters() list[Parameter] #
Generate Python
Parameter
values suitable for functions that are derived from the glyph.- Returns:
list(Parameter)
- classmethod properties(*, _with_props: bool = False) 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[[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:
- 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, value: Any, *, 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, Any]) None #
Update objects that match a given selector with the specified attribute/value updates.
- Parameters:
selector (JSON-like) –
updates (dict) –
- Returns:
None
- themed_values() dict[str, Any] | None #
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_serializable(serializer: Serializer) ObjectRefRep #
Converts this object to a serializable representation.
- trigger(attr: str, old: Any, new: Any, 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)
- class BoxSelectTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
Bases:
Drag
,SelectTool
The box selection tool allows users to make selections on a Plot by showing a rectangular region by dragging the mouse or a finger over the plot area. The end of the drag event indicates the selection region is ready.
See Selected and unselected glyphs for information on styling selected and unselected glyphs.
JSON Prototype
{ "description": null, "dimensions": "both", "icon": null, "id": "p125983", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "mode": "replace", "name": null, "origin": "corner", "overlay": { "attributes": { "bottom_units": "canvas", "fill_alpha": 0.5, "fill_color": "lightgrey", "left_units": "canvas", "level": "overlay", "line_alpha": 1.0, "line_color": "black", "line_dash": [ 4, 4 ], "line_width": 2, "right_units": "canvas", "syncable": false, "top_units": "canvas", "visible": false }, "id": "p125984", "name": "BoxAnnotation", "type": "object" }, "renderers": "auto", "select_every_mousemove": false, "subscribed_events": { "type": "set" }, "syncable": true, "tags": [] }
Public Data Attributes:
Whether a selection computation should happen on every mouse event, or only once, when the selection region is completed.
Which dimensions the box selection is to be free in.
A shaded annotation drawn to indicate the selection region.
Indicates whether the rectangular selection area should originate from a corner (top-left or bottom-right depending on direction) or the center of the box.
Inherited from
SelectTool
An explicit list of renderers to hit test against.
Defines what should happen when a new selection is made.
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, dimensions, icon, mode, name, ...])Inherited from
Drag
__init__
(*[, icon, name, syncable, tags])Inherited from
SelectTool
__init__
(*[, icon, mode, name, renderers, ...])Inherited from
GestureTool
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- dimensions = 'both'#
- Type:
Which dimensions the box selection is to be free in. By default, users may freely draw selections boxes with any dimensions. If only “width” is set, the box will be constrained to span the entire vertical space of the plot, only the horizontal dimension can be controlled. If only “height” is set, the box will be constrained to span the entire horizontal space of the plot, and the vertical dimension can be controlled.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- mode = 'replace'#
- Type:
Defines what should happen when a new selection is made. The default is to replace the existing selection. Other options are to append to the selection, intersect with it or subtract from it.
- 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.
- origin = 'corner'#
- Type:
Enum
(Enumeration(corner, center))
Indicates whether the rectangular selection area should originate from a corner (top-left or bottom-right depending on direction) or the center of the box.
- overlay = BoxAnnotation(id='p126000', ...)#
- Type:
A shaded annotation drawn to indicate the selection region.
- renderers = 'auto'#
-
An explicit list of renderers to hit test against. If unset, defaults to all renderers on a plot.
- select_every_mousemove = False#
- Type:
Whether a selection computation should happen on every mouse event, or only once, when the selection region is completed. Default: False
- 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.
- classmethod descriptors() list[PropertyDescriptor[Any]] #
List of property descriptors in the order of definition.
- equals(other: 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: Model, other_attr: str, attr_selector: int | str | None = 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) PropertyDescriptor[Any] | None #
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: str | Type[Event], *callbacks: EventCallback) 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 parameters() list[Parameter] #
Generate Python
Parameter
values suitable for functions that are derived from the glyph.- Returns:
list(Parameter)
- classmethod properties(*, _with_props: bool = False) 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[[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:
- 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, value: Any, *, 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, Any]) None #
Update objects that match a given selector with the specified attribute/value updates.
- Parameters:
selector (JSON-like) –
updates (dict) –
- Returns:
None
- themed_values() dict[str, Any] | None #
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_serializable(serializer: Serializer) ObjectRefRep #
Converts this object to a serializable representation.
- trigger(attr: str, old: Any, new: Any, 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)
- class BoxZoomTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
Bases:
Drag
The box zoom tool allows users to define a rectangular egion of a Plot to zoom to by dragging he mouse or a finger over the plot region. The end of the drag event indicates the selection region is ready.
Note
BoxZoomTool
is incompatible withGMapPlot
due to the manner in which Google Maps exert explicit control over aspect ratios. Adding this tool to aGMapPlot
will have no effect.JSON Prototype
{ "description": null, "dimensions": "both", "icon": null, "id": "p126009", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "match_aspect": false, "name": null, "origin": "corner", "overlay": { "attributes": { "bottom_units": "canvas", "fill_alpha": 0.5, "fill_color": "lightgrey", "left_units": "canvas", "level": "overlay", "line_alpha": 1.0, "line_color": "black", "line_dash": [ 4, 4 ], "line_width": 2, "right_units": "canvas", "syncable": false, "top_units": "canvas", "visible": false }, "id": "p126010", "name": "BoxAnnotation", "type": "object" }, "subscribed_events": { "type": "set" }, "syncable": true, "tags": [] }
Public Data Attributes:
Which dimensions the zoom box is to be free in.
A shaded annotation drawn to indicate the selection region.
Whether the box zoom region should be restricted to have the same aspect ratio as the plot region.
Indicates whether the rectangular zoom area should originate from a corner (top-left or bottom-right depending on direction) or the center of the box.
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, dimensions, icon, ...])Inherited from
Drag
__init__
(*[, icon, name, syncable, tags])Inherited from
GestureTool
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- dimensions = 'both'#
- Type:
Either
(Enum
(Dimensions
),Auto
)
Which dimensions the zoom box is to be free in. By default, users may freely draw zoom boxes with any dimensions. If only “width” is supplied, the box will be constrained to span the entire vertical space of the plot, only the horizontal dimension can be controlled. If only “height” is supplied, the box will be constrained to span the entire horizontal space of the plot, and the vertical dimension can be controlled.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- match_aspect = False#
- Type:
Whether the box zoom region should be restricted to have the same aspect ratio as the plot region.
Note
If the tool is restricted to one dimension, this value has no effect.
- 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.
- origin = 'corner'#
- Type:
Enum
(Enumeration(corner, center))
Indicates whether the rectangular zoom area should originate from a corner (top-left or bottom-right depending on direction) or the center of the box.
- overlay = BoxAnnotation(id='p126026', ...)#
- Type:
A shaded annotation drawn to indicate the selection region.
- 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.
- classmethod descriptors() list[PropertyDescriptor[Any]] #
List of property descriptors in the order of definition.
- equals(other: 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: Model, other_attr: str, attr_selector: int | str | None = 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) PropertyDescriptor[Any] | None #
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: str | Type[Event], *callbacks: EventCallback) 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 parameters() list[Parameter] #
Generate Python
Parameter
values suitable for functions that are derived from the glyph.- Returns:
list(Parameter)
- classmethod properties(*, _with_props: bool = False) 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[[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:
- 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, value: Any, *, 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, Any]) None #
Update objects that match a given selector with the specified attribute/value updates.
- Parameters:
selector (JSON-like) –
updates (dict) –
- Returns:
None
- themed_values() dict[str, Any] | None #
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_serializable(serializer: Serializer) ObjectRefRep #
Converts this object to a serializable representation.
- trigger(attr: str, old: Any, new: Any, 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)
- class CopyTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
Bases:
ActionTool
The copy tool is an action tool, that allows copying the rendererd contents of a plot or a collection of plots to system’s clipboard. This tools is browser dependent and may not function in certain browsers, or require additional permissions to be granted to the web page.
JSON Prototype
{ "description": null, "icon": null, "id": "p126031", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "name": null, "subscribed_events": { "type": "set" }, "syncable": true, "tags": [] }
Public Data Attributes:
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, icon, name, syncable, tags])Inherited from
ActionTool
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- 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.
- classmethod descriptors() list[PropertyDescriptor[Any]] #
List of property descriptors in the order of definition.
- equals(other: 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: Model, other_attr: str, attr_selector: int | str | None = 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) PropertyDescriptor[Any] | None #
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: str | Type[Event], *callbacks: EventCallback) 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 parameters() list[Parameter] #
Generate Python
Parameter
values suitable for functions that are derived from the glyph.- Returns:
list(Parameter)
- classmethod properties(*, _with_props: bool = False) 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[[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:
- 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, value: Any, *, 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, Any]) None #
Update objects that match a given selector with the specified attribute/value updates.
- Parameters:
selector (JSON-like) –
updates (dict) –
- Returns:
None
- themed_values() dict[str, Any] | None #
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_serializable(serializer: Serializer) ObjectRefRep #
Converts this object to a serializable representation.
- trigger(attr: str, old: Any, new: Any, 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)
- class CrosshairTool(*args: Any, id: ID | None = None, **kwargs: Any)[source]#
Bases:
InspectTool
The crosshair tool is a passive inspector tool. It is generally on at all times, but can be configured in the inspector’s menu associated with the toolbar icon shown above.
The crosshair tool draws a crosshair annotation over the plot, centered on the current mouse position. The crosshair tool may be configured to draw across only one dimension by setting the
dimension
property to onlywidth
orheight
.JSON Prototype
{ "description": null, "dimensions": "both", "icon": null, "id": "p126037", "js_event_callbacks": { "type": "map" }, "js_property_callbacks": { "type": "map" }, "line_alpha": 1.0, "line_color": "black", "line_width": 1, "name": null, "overlay": "auto", "subscribed_events": { "type": "set" }, "syncable": true, "tags": [], "toggleable": true }
Public Data Attributes:
An annotation drawn to indicate the crosshair.
Which dimensions the crosshair tool is to track.
A color to use to stroke paths with.
An alpha value to use to stroke paths with.
Stroke width in units of pixels.
Inherited from
InspectTool
Whether an on/off toggle button should appear in the toolbar for this inspection tool.
Inherited from
Tool
An icon to display in the toolbar.
A string describing the purpose of this tool.
Inherited from
Model
id
ref
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.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.subscribed_events
Collection of events that are subscribed to by Python callbacks.
Indicates whether this model should be synchronized back to a Bokeh server when updated in a web browser.
Public Methods:
__init__
(*[, dimensions, icon, line_alpha, ...])Inherited from
InspectTool
__init__
(*[, icon, name, syncable, tags, ...])Inherited from
GestureTool
__init__
(*[, icon, name, syncable, tags])Inherited from
Tool
__init__
(*[, icon, name, syncable, tags])from_string
(name)Takes a string and returns a corresponding Tool instance.
register_alias
(name, constructor)Inherited from
Model
__init_subclass__
()This method is called when a class is subclassed.
__new__
(cls, *args[, id])__init__
(*args, **kwargs)__str__
()Return str(self).
__str__
()Return str(self).
destroy
()Clean up references to the document and property
Generate Python
Parameter
values suitable for functions that are derived from the glyph.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.references
()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_serializable
(serializer)Converts this object to a serializable representation.
trigger
(attr, old, new[, hint, setter])Inherited from
HasProps
__init_subclass__
()This method is called when a class is subclassed.
__init__
(**properties)__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).
__str__
()Return str(self).
equals
(other)Structural equality of models.
to_serializable
(serializer)Converts this object to a serializable representation.
set_from_json
(name, value, *[, setter])Set a property value on this object from JSON.
update
(**kwargs)Updates the object's properties from the given keyword arguments.
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.
List of property descriptors in the order of definition.
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
Serializable
to_serializable
(serializer)Converts this object to a serializable representation.
Inherited from
HasDocumentRef
__init__
(*args, **kw)Inherited from
PropertyCallbackManager
__init__
(*args, **kw)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])Trigger callbacks for
attr
on this object.Inherited from
EventCallbackManager
__init__
(*args, **kw)on_event
(event, *callbacks)Run callbacks when the specified event occurs on this Model
- description = None#
-
A string describing the purpose of this tool. If not defined, an auto-generated description will be used. This description will be typically presented in the user interface as a tooltip.
- dimensions = 'both'#
- Type:
Which dimensions the crosshair tool is to track. By default, both vertical and horizontal lines will be drawn. If only “width” is supplied, only a horizontal line will be drawn. If only “height” is supplied, only a vertical line will be drawn.
- icon = None#
-
An icon to display in the toolbar.
The icon can provided as well known tool icon name, a CSS class selector, a data URI with an
image/*
MIME, a path to an image, a PILImage
object, or an RGB(A) NumPy array. IfNone
, then the intrinsic icon will be used (may depend on tool’s configuration).
- line_alpha = 1.0#
- Type:
An alpha value to use to stroke paths with.
Acceptable values are floating-point numbers between 0 and 1 (0 being transparent and 1 being opaque).
- line_color = 'black'#
- Type:
A color to use to stroke paths with.
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
- 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.
- overlay = 'auto'#
-
An annotation drawn to indicate the crosshair.
If
"auto"
, this will create spans depending on thedimensions
property, which based on its value, will result in either one span (horizontal or vertical) or two spans (horizontal and vertical).Alternatively the user can provide one
Span
instance, where the dimension is indicated by thedimension
property of theSpan
. Also twoSpan
instances can be provided. Providing explicitSpan
instances allows for constructing linked crosshair, when those instances are shared between crosshair tools of different plots.Note
This property is experimental and may change at any point. In particular in future this will allow using other annotations than
Span
and annotation groups.
- 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.
- toggleable = True#
- Type:
Whether an on/off toggle button should appear in the toolbar for this inspection tool. If
False
, the viewers of a plot will not be able to toggle the inspector on or off using the toolbar.
- 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()