Holoviews#

holoviews visualizations in hiveplotlib.

Currently, hiveplotlib supports a bokeh and matplotlib backend for holoviews.

hiveplotlib.viz.holoviews.axes_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: Overlay | None = None, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: int = 16, width: float | None = None, height: float | None = None, center_plot: bool = True, axes_off: bool = True, overlay_kwargs: dict | None = None, hover: bool = True, text_kwargs: dict | None = None, **segments_kwargs) Overlay | None#

holoviews visualization of axes in a HivePlot or P2CP instance.

Parameters:
  • instanceHivePlot or P2CP instance for which we want to draw axes.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting buffer will find the maximum radius spanned by any Axis instance 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_name for each Axis.)

  • axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting axes_label_buffer to 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. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in instance.

  • axes_off – whether to turn off Cartesian x, y axes in the hv.Overlay (default True hides the x and y axes).

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • hover – whether to add hover information or not for axes. False excludes hover information. Default True. Only works currently for Hive Plots, not P2CPs.

  • text_kwargs – additional kwargs passed to holoviews.Text() call.

  • segments_kwargs – additional params that will be applied to all hive plot axes. Note, these are kwargs that affect a holoviews.Segments() call.

Returns:

holoviews.Overlay. If instance cannot be plotted with this function, returns None.

hiveplotlib.viz.holoviews.edge_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: Overlay | None = None, tags: Hashable | List[Hashable] | None = None, width: float | None = None, height: float | None = None, center_plot: bool = True, buffer: float = 0.3, axes_off: bool = True, overlay_kwargs: dict | None = None, hover: bool = True, **contours_kwargs) Overlay | None#

holoviews visualization of constructed edges in a HivePlot or P2CP instance.

Note

If instance is a HivePlot, then users can provide edge-specific data to plotting keyword arguments by providing column names from the HivePlot.edges.data DataFrame as values to one of the following options:

  1. HivePlot.edge_plotting_keyword_arguments attribute via HivePlot.update_edge_plotting_keyword_arguments().

  2. HivePlot.edges.edge_viz_kwargs attribute via HivePlot.edges.update_edge_viz_kwargs().

  3. In this call in the provided contours_kwargs.

If instance is a HivePlot, 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_edges attribute, followed by the provided contours_kwargs, then the edge keyword argument hierarchy set by the hive plot’s edge_kwarg_hierarchy attribute, and finally the HivePlot.edges.edge_viz_kwargs.

If any keyword arguments in the hive_plot_edges attribute are also provided in this function’s contours_kwargs, then a warning will be raised.

Hover information can only be generated for all edges at once in holoviews with the bokeh backend, so hover information fields will be dictated by a single tag of data even if different data tags have different dataframe columns.

Parameters:
  • instanceHivePlot or P2CP instance for which we want to draw edges.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • tags – which tag(s) of data to plot. Default None plots all tags of data. Can supply either a single tag or list of tags.

  • width – width of figure. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in instance.

  • buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting buffer will find the maximum radius spanned by any Axis instance 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 the hv.Overlay (default True hides the x and y axes).

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • hover – whether to add hover information or not for edges. False excludes hover information. Default True. 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).

  • contours_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() or hiveplotlib.BaseHivePlot.add_edge_kwargs() / hiveplotlib.P2CP.add_edge_kwargs() will take priority). To overwrite previously set kwargs, see hiveplotlib.BaseHivePlot.add_edge_kwargs() / hiveplotlib.P2CP.add_edge_kwargs() for more. Note, these are kwargs that affect a holoviews.Contours() call. Edge data values can also be used, see note above for more details.

Raises:

ValueError – if user tries to use the "line_color" parameter with the holoviews-bokeh back end (only "color" can be used to set the edge color with the bokeh back end).

Returns:

holoviews.Overlay. If instance cannot be plotted with this function, returns None.

hiveplotlib.viz.holoviews.hive_plot_viz(hive_plot: BaseHivePlot | HivePlot, fig: Overlay | None = None, tags: Hashable | List[Hashable] | None = None, width: float | None = None, height: float | None = None, center_plot: bool = True, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: int = 16, axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, text_kwargs: dict | None = None, overlay_kwargs: dict | None = None, hover: bool | Literal['nodes', 'edges', 'axes'] | list[Literal['nodes', 'edges', 'axes']] = True, **edge_kwargs) Overlay#

Create default holoviews visualization of a HivePlot instance.

Note

Users can provide node-specific data to plotting keyword arguments by providing column names from the HivePlot.nodes.data DataFrame as values in either the HivePlot.nodes.node_viz_kwargs dictionary via HivePlot.update_node_viz_kwargs() or in this call in the provided node_kwargs.

Any provided node plotting keyword arguments in HivePlot.nodes.node_viz_kwargs will be prioritized over any provided node_kwargs.

Users can provide edge-specific data to plotting keyword arguments by providing column names from the HivePlot.edges.data DataFrame as values to one of the following options:

  1. HivePlot.edge_plotting_keyword_arguments attribute via HivePlot.update_edge_plotting_keyword_arguments().

  2. HivePlot.edges.edge_viz_kwargs attribute via HivePlot.edges.update_edge_viz_kwargs().

  3. 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_edges attribute, followed by the provided edge_kwargs, then the edge keyword argument hierarchy set by the hive plot’s edge_kwarg_hierarchy attribute, and finally the HivePlot.edges.edge_viz_kwargs.

If any keyword arguments in the hive_plot_edges attribute are also provided in this function’s edge_kwargs, then a warning will be raised.

When including edge hover information, this can only be generated for all edges at once in holoviews with the bokeh backend, 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_plotHivePlot instance we want to visualize.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • tags – which tag(s) of data to plot. Default None plots all tags of data. Can supply either a single tag or list of tags.

  • width – width of figure. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in hive_plot.

  • buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting buffer will find the maximum radius spanned by any Axis instance 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_name for each Axis.)

  • axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting axes_label_buffer to 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 the hv.Overlay (default True hides 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 holoviews.Points() 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 holoviews.Segments() call.

  • text_kwargs – additional kwargs passed to holoviews.Text() call.

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • hover – whether to add hover information or not for nodes, edges, and / or axes. False excludes all hover information, while default True includes 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() or hiveplotlib.BaseHivePlot.add_edge_kwargs() will take priority). To overwrite previously set kwargs, see hiveplotlib.BaseHivePlot.add_edge_kwargs() for more. Note, these are kwargs that affect a holoviews.Contours() call. Edge data values can also be used, see note above for more details.

Raises:

ValueError – if user tries to use the "line_color" parameter with the holoviews-bokeh back end (only "color" can be used to set the edge color with the bokeh back end).

Returns:

holoviews.Overlay.

hiveplotlib.viz.holoviews.label_axes(instance: BaseHivePlot | HivePlot | P2CP, fig: Overlay | None = None, axes_labels_buffer: float = 1.1, axes_labels_fontsize: int = 16, buffer: float = 0.3, width: float | None = None, height: float | None = None, center_plot: bool = True, axes_off: bool = True, overlay_kwargs: dict | None = None, **text_kwargs) Overlay | None#

holoviews visualization of axis labels in a HivePlot or P2CP instance.

For HivePlot instances, each axis’ long_name attribute will be used. For P2CP instances, column names in the data attribute will be used.

Parameters:
  • instanceHivePlot or P2CP instance for which we want to draw axes.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting axes_label_buffer to 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 buffer will find the maximum radius spanned by any Axis instance and set the x and y bounds as (-max_radius - buffer * max_radius, max_radius + buffer * max_radius)).

  • width – width of figure. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in instance.

  • axes_off – whether to turn off Cartesian x, y axes in the hv.Overlay (default True hides the x and y axes).

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • text_kwargs – additional kwargs passed to holoviews.Text() call.

Returns:

holoviews.Overlay. If instance cannot be plotted with this function, returns None.

hiveplotlib.viz.holoviews.node_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: Overlay | None = None, width: float | None = None, height: float | None = None, center_plot: bool = True, buffer: float = 0.3, axes_off: bool = True, overlay_kwargs: dict | None = None, hover: bool = True, **points_kwargs) Overlay#

holoviews visualization of nodes in a HivePlot or P2CP instance that have been placed on their axes.

Note

If instance is a HivePlot, then users can provide node-specific data to plotting keyword arguments by providing column names from the HivePlot.nodes.data DataFrame as values in either the HivePlot.nodes.node_viz_kwargs dictionary via HivePlot.update_node_viz_kwargs() or in this call in the provided points_kwargs.

If instance is a HivePlot, then any provided node plotting keyword arguments in HivePlot.nodes.node_viz_kwargs will be prioritized over any provided points_kwargs.

Parameters:
  • instanceHivePlot or P2CP instance for which we want to draw nodes.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • width – width of figure. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in instance.

  • buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting buffer will find the maximum radius spanned by any Axis instance 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 the hv.Overlay (default True hides the x and y axes).

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • hover – whether to add hover information or not for nodes. False excludes hover information. Default True. Only works currently for Hive Plots, not P2CPs.

  • points_kwargs – additional params that will be applied to all hive plot nodes. Note, these are kwargs that affect a holoviews.Points() call. Node data values can also be used, see note above for more details.

Returns:

holoviews.Overlay.

hiveplotlib.viz.holoviews.p2cp_legend(fig: Overlay, **legend_kwargs) Overlay#

Generate a legend for a P2CP instance, where entries in the legend will be tags of data added to the instance.

Parameters:
  • p2cpP2CP instance we want to visualize.

  • figplotly figure on which we will draw the legend.

  • legend_kwargs – additional values to be called in hv.Overlay().opts() call.

Returns:

holoviews.Overlay.

hiveplotlib.viz.holoviews.p2cp_viz(p2cp: P2CP, fig: Overlay | None = None, tags: Hashable | List[Hashable] | None = None, width: float | None = None, height: float | None = None, center_plot: bool = True, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.1, axes_labels_fontsize: int = 16, axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, text_kwargs: dict | None = None, overlay_kwargs: dict | None = None, **edge_kwargs) Overlay#

Create default holoviews visualization of a P2CP instance.

Parameters:
  • p2cpP2CP instance we want to visualize.

  • fig – default None builds new overlay. If an overlay is specified, axes will be drawn on that overlay.

  • tags – which tag(s) of data to plot. Default None plots all tags of data. Can supply either a single tag or list of tags.

  • width – width of figure. When the holoviews backend is set to "bokeh", width must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", width must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • height – height of figure. When the holoviews backend is set to "bokeh", height must be specified in pixels, defaulting to 600. When the holoviews backend is set to "matplotlib", height must be specified in inches, defaulting to 10. Note: only works if instantiating new figure (e.g. fig is None).

  • 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 in p2cp.

  • buffer – fraction of the axes past which to buffer x and y dimensions (e.g. setting buffer will find the maximum radius spanned by any Axis instance 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_name for each Axis.)

  • axes_labels_buffer – fraction which to radially buffer axes labels (e.g. setting axes_label_buffer to 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 the hv.Overlay (default True hides the x and y axes).

  • node_kwargs – additional params that will be applied to all P2CP nodes. Note, these are kwargs that affect a holoviews.Points() call.

  • axes_kwargs – additional params that will be applied to all P2CP axes. Note, these are kwargs that affect a holoviews.Segments() call.

  • text_kwargs – additional kwargs passed to holoviews.Text() call.

  • overlay_kwargs – additional values to be called in hv.Overlay().opts() call. Note if width and height are added here, then they will be prioritized over the width and height parameters.

  • edge_kwargs – additional params that will be applied to all edges on all axes (but kwargs specified beforehand in hiveplotlib.P2CP.build_edges() or hiveplotlib.P2CP.add_edge_kwargs() will take priority). To overwrite previously set kwargs, see hiveplotlib.P2CP.add_edge_kwargs() for more. Note, these are kwargs that affect a holoviews.Contours() call.

Returns:

holoviews.Overlay.