Bokeh#
bokeh-backend visualizations in hiveplotlib.
- hiveplotlib.viz.bokeh.axes_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: figure | None = None, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: str = '16px', width: int = 600, height: int = 600, center_plot: bool = True, axes_off: bool = True, fig_kwargs: dict | None = None, hover: bool = True, label_kwargs: dict | None = None, **line_kwargs) figure | None#
bokehvisualization of axes in aHivePlotorP2CPinstance.- Parameters:
instance –
HivePlotorP2CPinstance for which we want to draw axes.fig – default
Nonebuilds new figure. If a figure is specified, axes will be drawn on that figure.buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).show_axes_labels – whether to label the hive plot axes in the figure (uses
Axis.long_namefor eachAxis.)axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting
axes_label_bufferto 1.1 will be 10% further past the end of the axis moving from the origin of the plot).axes_labels_fontsize – font size for axes labels.
width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis ininstance.axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not for axes.
Falseexcludes hover information. DefaultTrue. Only works currently for Hive Plots, not P2CPs.label_kwargs – additional kwargs passed to bokeh.models.Label() call.
line_kwargs – additional params that will be applied to all hive plot axes. Note, these are kwargs that affect a bokeh.models.Line() call.
- Returns:
bokehfigure. If instance cannot be plotted with this function, returnsNone.
- hiveplotlib.viz.bokeh.edge_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: figure | None = None, tags: Hashable | List[Hashable] | None = None, width: int = 600, height: int = 600, center_plot: bool = True, buffer: float = 0.3, axes_off: bool = True, fig_kwargs: dict | None = None, hover: bool = True, **edge_kwargs) figure#
bokehvisualization of constructed edges in aHivePlotorP2CPinstance.Note
If
instanceis aHivePlot, then users can provide edge-specific data to plotting keyword arguments by providing column names from theHivePlot.edges.dataDataFrame as values to one of the following options:HivePlot.edge_plotting_keyword_argumentsattribute viaHivePlot.update_edge_plotting_keyword_arguments().HivePlot.edges.edge_viz_kwargsattribute viaHivePlot.edges.update_edge_viz_kwargs().In this call in the provided
edge_kwargs.
If
instanceis aHivePlot, then edge keyword arguments will be prioritized according to the following hierarchy:The most prioritized arguments are the arguments stored in the hive plot
hive_plot_edgesattribute, followed by the providededge_kwargs, then the edge keyword argument hierarchy set by the hive plot’sedge_kwarg_hierarchyattribute, and finally theHivePlot.edges.edge_viz_kwargs.If any keyword arguments in the
hive_plot_edgesattribute are also provided in this function’sedge_kwargs, then a warning will be raised.Hover information can only be generated for all edges at once with the
bokehbackend, so hover information fields will be dictated by a single tag of data even if different data tags have different dataframe columns.- Parameters:
instance –
HivePlotorP2CPinstance for which we want to draw edges.fig – default
Nonebuilds new figure. If a figure is specified, edges will be drawn on that figure.tags – which tag(s) of data to plot. Default
Noneplots all tags of data. Can supply either a single tag or list of tags.width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis ininstance.buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not for edges.
Falseexcludes hover information. DefaultTrue. Only works currently for Hive Plots, not P2CPs. Hover information will be generated as a function of a single tag of data, even if multiple tags are plotted (see note above for more details).edge_kwargs – additional params that will be applied to all edges on all axes (but kwargs specified beforehand in
hiveplotlib.BaseHivePlot.connect_axes()/hiveplotlib.P2CP.build_edges()orhiveplotlib.BaseHivePlot.add_edge_kwargs()/hiveplotlib.P2CP.add_edge_kwargs()will take priority). To overwrite previously set kwargs, seehiveplotlib.BaseHivePlot.add_edge_kwargs()/hiveplotlib.P2CP.add_edge_kwargs()for more. Note, these are kwargs that affect a bokeh.models.MultiLine() call. Edge data values can also be used, see note above for more details.
- Returns:
bokehfigure.
- hiveplotlib.viz.bokeh.hive_plot_viz(hive_plot: BaseHivePlot | HivePlot, fig: figure | None = None, tags: Hashable | List[Hashable] | None = None, width: int = 600, height: int = 600, center_plot: bool = True, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: str = '16px', axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, label_kwargs: dict | None = None, fig_kwargs: dict | None = None, hover: bool | Literal['nodes', 'edges', 'axes'] | list[Literal['nodes', 'edges', 'axes']] = True, **edge_kwargs) figure#
Create default
bokehvisualization of aHivePlotinstance.Note
Users can provide node-specific data to plotting keyword arguments by providing column names from the
HivePlot.nodes.dataDataFrame as values in either theHivePlot.nodes.node_viz_kwargsdictionary viaHivePlot.update_node_viz_kwargs()or in this call in the providednode_kwargs.Any provided node plotting keyword arguments in
HivePlot.nodes.node_viz_kwargswill be prioritized over any providednode_kwargs.Users can provide edge-specific data to plotting keyword arguments by providing column names from the
HivePlot.edges.dataDataFrame as values to one of the following options:HivePlot.edge_plotting_keyword_argumentsattribute viaHivePlot.update_edge_plotting_keyword_arguments().HivePlot.edges.edge_viz_kwargsattribute viaHivePlot.edges.update_edge_viz_kwargs().In this call in the provided
edge_kwargs.
Edge keyword arguments will be prioritized according to the following hierarchy:
The most prioritized arguments are the arguments stored in the hive plot
hive_plot_edgesattribute, followed by the providededge_kwargs, then the edge keyword argument hierarchy set by the hive plot’sedge_kwarg_hierarchyattribute, and finally theHivePlot.edges.edge_viz_kwargs.If any keyword arguments in the
hive_plot_edgesattribute are also provided in this function’sedge_kwargs, then a warning will be raised.When including edge hover information, this can only be generated for all edges at once with the
bokehback end, so hover information fields will be dictated by a single tag of data even if different data tags have different dataframe columns.When including axis hover information, and a subset of axes has metadata not available on other axes, all axes will show that metadata variable, but the axes without the variable will display the value N/A.
- Parameters:
hive_plot –
HivePlotinstance we want to visualize.fig – default
Nonebuilds new figure. If a figure is specified, hive plot will be drawn on that figure.tags – which tag(s) of data to plot. Default
Noneplots all tags of data. Can supply either a single tag or list of tags.width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis inhive_plot.buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).show_axes_labels – whether to label the hive plot axes in the figure (uses
Axis.long_namefor eachAxis.)axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting
axes_label_bufferto 1.1 will be 10% further past the end of the axis moving from the origin of the plot).axes_labels_fontsize – font size for hive plot axes labels.
axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).node_kwargs – additional params that will be applied to all hive plot nodes. Note, these are kwargs that affect a fig.scatter() call. Node data values can also be used, see note above for more details.
axes_kwargs – additional params that will be applied to all hive plot axes. Note, these are kwargs that affect a bokeh.models.Line() call.
label_kwargs – additional kwargs passed to bokeh.models.Label() call.
fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not for nodes, edges, and / or axes.
Falseexcludes all hover information, while defaultTrueincludes node, edge, and axis hover information. Providing the value"nodes"/"edges"/"axes"adds hover information ONLY for nodes / edges / axes. Users can also provide a list of a subset of these values (e.g. providing["nodes", "edges"]would show all hover info except for axes).edge_kwargs – additional params that will be applied to all edges on all axes (but kwargs specified beforehand in
hiveplotlib.BaseHivePlot.connect_axes()orhiveplotlib.BaseHivePlot.add_edge_kwargs()will take priority). To overwrite previously set kwargs, seehiveplotlib.BaseHivePlot.add_edge_kwargs()for more. Note, these are kwargs that affect a bokeh.models.MultiLine() call. Edge data values can also be used, see note above for more details.
- Raises:
InvalidHoverVariableError – if invalid input provided to
hoverparameter.- Returns:
bokehfigure.
- hiveplotlib.viz.bokeh.label_axes(instance: BaseHivePlot | HivePlot | P2CP, fig: figure | None = None, axes_labels_buffer: float = 1.1, axes_labels_fontsize: str = '16px', buffer: float = 0.3, width: int = 600, height: int = 600, center_plot: bool = True, axes_off: bool = True, fig_kwargs: dict | None = None, **label_kwargs) figure | None#
bokehvisualization of axis labels in aHivePlotorP2CPinstance.For
HivePlotinstances, each axis’long_nameattribute will be used. ForP2CPinstances, column names in thedataattribute will be used.- Parameters:
instance –
HivePlotorP2CPinstance for which we want to draw nodes.fig – default
Nonebuilds new figure. If a figure is specified, axis labels will be drawn on that figure.axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting
axes_label_bufferto 1.1 will be 10% further past the end of the axis moving from the origin of the plot).axes_labels_fontsize – font size for axes labels.
buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis ininstance.axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.label_kwargs – additional kwargs passed to bokeh.models.Label() call.
- Returns:
bokehfigure. If instance cannot be plotted with this function, returnsNone.
- hiveplotlib.viz.bokeh.node_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: figure | None = None, width: int = 600, height: int = 600, center_plot: bool = True, buffer: float = 0.3, axes_off: bool = True, fig_kwargs: dict | None = None, hover: bool = True, **scatter_kwargs) figure#
bokehvisualization of nodes in aHivePlotorP2CPinstance that have been placed on their axes.Note
If
instanceis aHivePlot, then users can provide node-specific data to plotting keyword arguments by providing column names from theHivePlot.nodes.dataDataFrame as values in either theHivePlot.nodes.node_viz_kwargsdictionary viaHivePlot.update_node_viz_kwargs()or in this call in the providedscatter_kwargs.If
instanceis aHivePlot, then any provided node plotting keyword arguments inHivePlot.nodes.node_viz_kwargswill be prioritized over any providedscatter_kwargs.- Parameters:
instance –
HivePlotorP2CPinstance for which we want to draw nodes.fig – default
Nonebuilds new figure. If a figure is specified, nodes will be drawn on that figure.width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis ininstance.buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not for nodes.
Falseexcludes hover information. DefaultTrue. Only works currently for Hive Plots, not P2CPs.scatter_kwargs – additional params that will be applied to all hive plot nodes. Note, these are kwargs that affect a fig.scatter() call. Node data values can also be used, see note above for more details.
- Returns:
bokehfigure.
- hiveplotlib.viz.bokeh.p2cp_legend(p2cp: P2CP, fig: figure, tags: Hashable | List[Hashable] | None = None, title: str = 'Tags') figure#
Generate a legend for a
P2CPinstance, where entries in the legend will be tags of data added to the instance.Note
The legend can be further modified by changing its attributes under
fig.legend. For more on the flexibility in changing the legend, see the bokeh.models.Legend() docs.- Parameters:
p2cp –
P2CPinstance we want to visualize.fig –
bokehfigure on which we will draw the legend.tags – which tags of data to include in the legend. Default
Noneuses all tags underp2cp.tags. This can be ignored unless explicitly wanting to exclude certain tags from the legend.title – title of the legend. Default “Tags”.
- Returns:
bokehfigure.
- hiveplotlib.viz.bokeh.p2cp_viz(p2cp: P2CP, fig: figure | None = None, tags: Hashable | List[Hashable] | None = None, width: int = 600, height: int = 600, center_plot: bool = True, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: str = '16px', axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, label_kwargs: dict | None = None, fig_kwargs: dict | None = None, **edge_kwargs) figure#
Create default
bokehvisualization of aP2CPinstance.- Parameters:
p2cp –
P2CPinstance we want to visualize.fig – default
Nonebuilds new figure. If a figure is specified, P2CP will be drawn on that figure.tags – which tag(s) of data to plot. Default
Noneplots all tags of data. Can supply either a single tag or list of tags.width – width of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).height – height of figure in pixels. Note: only works if instantiating new figure (e.g.
figisNone).center_plot – whether to center the figure on
(0, 0), the currently fixed center that the axes are drawn around by default. Will only run if there is at least one axis inp2cp.buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting
bufferwill find the maximum radius spanned by anyAxisinstance and set the x and y bounds as(-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).show_axes_labels – whether to label the P2CP axes in the figure (uses
Axis.long_namefor eachAxis.)axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting
axes_label_bufferto 1.1 will be 10% further past the end of the axis moving from the origin of the plot).axes_labels_fontsize – font size for P2CP axes labels.
axes_off – whether to turn off Cartesian x, y axes in resulting
bokehfigure (defaultTruehides the x and y axes).node_kwargs – additional params that will be applied to all P2CP nodes. Note, these are kwargs that affect a fig.scatter() call.
axes_kwargs – additional params that will be applied to all P2CP axes. Note, these are kwargs that affect a bokeh.models.Line() call.
label_kwargs – additional kwargs passed to bokeh.models.Label() call.
fig_kwargs – additional values to be called in bokeh.plotting.figure() call. Note if
widthandheightare added here, then they will be prioritized over thewidthandheightparameters.edge_kwargs – additional params that will be applied to all edges on all axes (but kwargs specified beforehand in
hiveplotlib.P2CP.build_edges()orhiveplotlib.P2CP.add_edge_kwargs()will take priority). To overwrite previously set kwargs, seehiveplotlib.P2CP.add_edge_kwargs()for more. Note, these are kwargs that affect a bokeh.models.MultiLine() call.
- Returns:
bokehfigure.