Plotly#
plotly-backend visualizations in hiveplotlib.
- hiveplotlib.viz.plotly.axes_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: Figure | None = None, line_width: float = 1.5, opacity: float = 1.0, buffer: float = 0.3, show_axes_labels: bool = True, axes_labels_buffer: float = 1.25, axes_labels_fontsize: float = 16, width: int = 600, height: int = 600, center_plot: bool = True, axes_off: bool = True, layout_kwargs: dict | None = None, hover: bool = True, label_kwargs: dict | None = None, **line_kwargs) Figure | None#
Visualize axes in a
HivePlotorP2CPinstance withplotly.Note
The
line_widthparameter corresponds to the standardwidthparameter for plotly lines. We are exposing this parameter with a different name becausewidthis already the standard name for figure width throughouthiveplotlib.viz.plotlyout of the box does not support standardopacityfor its line plots like it does for scatter plots, but it does support providing an alpha channel in RGBA / HSVA / HSLA strings. Theopacityparameter in this function call will behave asopacitybehaves forplotlyscatter plots, as long as the user-provided colors are either standard named CSS colors (e.g. “blue”, “navy”, “green”) or hex colors.Users who prefer to provide colors as multi-channel RGBA / HSVA / HSLA strings will override the
opacityparameter. For more on how to provide multi-channel color strings, see theplotlydocs for the color parameter for lines.- 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.line_width – width of axes.
opacity – opacity of edges. Must be in [0, 1].
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
plotlyfigure (defaultTruehides the x and y axes).layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not for axes.
Falseexcludes hover information. DefaultTrue. Hover info will appear over axes labels. Only works currently for Hive Plots, not P2CPs.label_kwargs – additional kwargs passed to the
textfontparameter ofplotly.graph_objects.Scatter(). For examples of parameter options, see the plotly docs.line_kwargs – additional params that will be applied to all hive plot axes. Note, these are kwargs that affect a plotly.graph_objects.scatter.Line() call.
- Raises:
ValueError – if
opacityis not in [0, 1].- Returns:
plotlyfigure. If instance cannot be plotted with this function, returnsNone.
- hiveplotlib.viz.plotly.edge_viz(instance: BaseHivePlot | HivePlot | P2CP, fig: Figure | None = None, tags: Hashable | List[Hashable] | None = None, line_width: float | None = None, opacity: float | None = None, width: int = 600, height: int = 600, center_plot: bool = True, buffer: float = 0.3, axes_off: bool = True, layout_kwargs: dict | None = None, hover: bool = True, **edge_kwargs) Figure#
Visualize constructed edges in a
HivePlotorP2CPinstance withplotly.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.The
line_widthparameter corresponds to the standardwidthparameter for plotly lines. We are exposing this parameter with a different name becausewidthis already the standard name for figure width throughouthiveplotlib.viz.plotlyout of the box does not support standardopacityfor its line plots like it does for scatter plots, but it does support providing an alpha channel in RGBA / HSVA / HSLA strings. Theopacityparameter in this function call will behave asopacitybehaves forplotlyscatter plots, as long as the user-provided colors are either standard named CSS colors (e.g. “blue”, “navy”, “green”) or hex colors.Users who prefer to provide colors as multi-channel RGBA / HSVA / HSLA strings will override the
opacityparameter. For more on how to provide multi-channel color strings, see theplotlydocs for the color parameter for lines.- 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.line_width – width of edges. Default
Nonesets line width to1.5if not provided by any other keyword arguments.opacity – opacity of edges. Must be in [0, 1]. Default
Nonesets opacity to0.5if not provided by any other keyword arguments.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
plotlyfigure (defaultTruehides the x and y axes).layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare 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.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 plotly.graph_objects.scatter.Line() call. Edge data values can also be used, see note above for more details.
- Raises:
ValueError – if
opacityis not in [0, 1].- Returns:
plotlyfigure.
- hiveplotlib.viz.plotly.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.25, axes_labels_fontsize: float = 16, axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, label_kwargs: dict | None = None, layout_kwargs: dict | None = None, hover: bool | Literal['nodes', 'edges', 'axes'] | list[Literal['nodes', 'edges', 'axes']] = True, **edge_kwargs) Figure#
Create default
plotlyvisualization 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.The line width and opacity of axes can be changed by including the
line_widthandopacityparameters, respectively, inaxes_kwargs. See the documentation forhiveplotlib.viz.plotly.axes_viz()for more information.If the line width and opacity of edges was not set in the original hive plot, then these parameters can be set by including the
line_widthandopacityparameters, respectively, as additional keyword arguments. See the documentation forhiveplotlib.viz.plotly.edge_viz()for more information.- 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
plotlyfigure (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 plotly.graph_objects.scatter.Marker() 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. This includes the
line_widthandopacityparameters inhiveplotlib.viz.plotly.axes_viz(). Note, these are kwargs that affect a plotly.graph_objects.scatter.Line() call.label_kwargs – additional kwargs passed to the
textfontparameter ofplotly.graph_objects.Scatter(). For examples of parameter options, see the plotly docs.layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare 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). This includes theline_widthandopacityparameters inhiveplotlib.viz.plotly.edge_viz(). To overwrite previously set kwargs, seehiveplotlib.BaseHivePlot.add_edge_kwargs()for more. Note, these are kwargs that affect a plotly.graph_objects.scatter.Line() call. Edge data values can also be used, see note above for more details.
- Raises:
InvalidHoverVariableError – if invalid input provided to
hoverparameter.ValueError – if any provided
opacityvalue is not in [0, 1].
- Returns:
plotlyfigure.
- hiveplotlib.viz.plotly.label_axes(instance: BaseHivePlot | HivePlot | P2CP, fig: Figure | None = None, axes_labels_buffer: float = 1.25, axes_labels_fontsize: float = 16, buffer: float = 0.3, width: int = 600, height: int = 600, center_plot: bool = True, axes_off: bool = True, layout_kwargs: dict | None = None, hover: bool = True, **label_kwargs) Figure | None#
Visualize axis labels in a
HivePlotorP2CPinstance withplotly.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
plotlyfigure (defaultTruehides the x and y axes).layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare added here, then they will be prioritized over thewidthandheightparameters.hover – whether to add hover information or not over axes labels.
Falseexcludes hover information. DefaultTrue. Only works currently for Hive Plots, not P2CPs.label_kwargs – additional kwargs passed to the
textfontparameter ofplotly.graph_objects.Scatter(). For examples of parameter options, see the plotly docs.
- Returns:
plotlyfigure. If instance cannot be plotted with this function, returnsNone.
- hiveplotlib.viz.plotly.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, layout_kwargs: dict | None = None, hover: bool = True, **scatter_kwargs) Figure#
Visualize of nodes in a
HivePlotorP2CPinstance that have been placed on their axes inplotly.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
plotlyfigure (defaultTruehides the x and y axes).layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare 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 plotly.graph_objects.scatter.Marker() call. Node data values can also be used, see note above for more details.
- Raises:
ValueError – if any provided
opacityvalue is not in [0, 1].- Returns:
plotlyfigure.
- hiveplotlib.viz.plotly.p2cp_legend(p2cp: P2CP, fig: Figure, tags: Hashable | List[Hashable] | None = None, title: str = 'Tags', **legend_kwargs) Figure#
Generate a legend for a
P2CPinstance, where entries in the legend will be tags of data added to the instance.- Parameters:
p2cp –
P2CPinstance we want to visualize.fig –
plotlyfigure 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”.
legend_kwargs – additional values for the
legendparameter in the plotly.graph_objects.update_layout() call.
- Returns:
plotlyfigure.
- hiveplotlib.viz.plotly.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.25, axes_labels_fontsize: float = 16, axes_off: bool = True, node_kwargs: dict | None = None, axes_kwargs: dict | None = None, label_kwargs: dict | None = None, layout_kwargs: dict | None = None, **edge_kwargs) Figure#
Create default
plotlyvisualization of aP2CPinstance.Note
The line width and opacity of axes can be changed by including the
line_widthandopacityparameters, respectively, inaxes_kwargs. See the documentation forhiveplotlib.viz.plotly.axes_viz()for more information.If the line width and opacity of edges was not set in the original P2CP, then these parameters can be set by including the
line_widthandopacityparameters, respectively, as additional keyword arguments. See the documentation forhiveplotlib.viz.plotly.edge_viz()for more information.- 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
plotlyfigure (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 plotly.graph_objects.scatter.Marker() call.
axes_kwargs – additional params that will be applied to all P2CP axes. This includes the
line_widthandopacityparameters inhiveplotlib.viz.plotly.axes_viz(). Note, these are kwargs that affect a plotly.graph_objects.scatter.Line() call.label_kwargs – additional kwargs passed to the
textfontparameter ofplotly.graph_objects.Scatter(). For examples of parameter options, see the plotly docs.layout_kwargs – additional values for the
layoutparameter to be called in plotly.graph_objects.Figure() call. Note, ifwidthandheightare 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). This includes theline_widthandopacityparameters inhiveplotlib.viz.plotly.edge_viz(). To overwrite previously set kwargs, seehiveplotlib.P2CP.add_edge_kwargs()for more. Note, these are kwargs that affect a plotly.graph_objects.scatter.Line() call.
- Raises:
ValueError – if any provided
opacityvalue is not in [0, 1].- Returns:
plotlyfigure.