cotengra.plot¶
Hypergraph, optimizer, and contraction tree visualization tools.
Attributes¶
Functions¶
|
|
|
Plot the trials interactively using altair. |
|
|
|
|
|
Plot the trials total flops vs max size. |
|
|
|
|
|
|
|
Plot the parameter choices for a given method in parallel coordinates. |
|
|
|
Imbue the networkx representation, |
|
Return a rotated set of points. |
|
Return the vertical span of the points. |
|
Rotate a position dict's points to cover a small vertical span |
|
|
|
|
|
Plot a contraction tree using matplotlib. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Plot a |
|
Plot a |
|
Module Contents¶
- cotengra.plot.NEUTRAL_STYLE¶
- cotengra.plot.plot_trials_alt(self, y=None, width=800, height=300)[source]¶
Plot the trials interactively using altair.
- cotengra.plot._scatter_labels¶
- cotengra.plot.plot_scatter(self, x='size', y='flops', cumulative_time=False, plot_best=False, figsize=(5, 5))[source]¶
- cotengra.plot.plot_trials(self, *, x='trial', y='score', figsize=(8, 3), cumulative_time=True, plot_best=True, **kwargs)[source]¶
- cotengra.plot.plot_scatter_alt(self, x='size', y='flops', color='run:Q', color_scheme='purplebluegreen', shape='method:N', width=400, height=400)[source]¶
Plot the trials total flops vs max size.
- cotengra.plot.plot_parameters_parallel(self, method, colormap='Spectral', smoothing=0.5, rasterized=None, **drawing_opts)[source]¶
Plot the parameter choices for a given method in parallel coordinates.
- Parameters:
method (str) – The method to plot the parameter choices for.
colormap (str, optional) – The colormap to use for coloring the curves.
smoothing (float, optional) – The amount of smoothing to apply to the curves.
rasterized (bool, optional) – Whether to rasterize the plot.
drawing_opts (dict, optional) – Additional options to pass to the Drawing constructor.
- Returns:
fig (matplotlib.figure.Figure) – The figure containing the plot.
ax (matplotlib.axes.Axes) – The axes containing the plot.
- cotengra.plot.hypergraph_compute_plot_info_G(H, G, highlight=(), node_color=(0.5, 0.5, 0.5, 1.0), edge_color=(0.0, 0.0, 0.0), edge_alpha=1 / 3, colormap='Spectral_r', centrality=False, sliced_inds=(), edge_style='-', hyperedge_style='--', sliced_style=':')[source]¶
Imbue the networkx representation,
G
, of hypergraph,H
with relevant plot information as node and edge attributes.
- cotengra.plot.massage_pos(pos, nangles=100, flatten=False)[source]¶
Rotate a position dict’s points to cover a small vertical span
- cotengra.plot.HAS_FA2¶
- cotengra.plot.HAS_PYGRAPHVIZ¶
- cotengra.plot.get_nice_pos(G, *, dim=2, layout='auto', initial_layout='auto', iterations='auto', k=None, use_forceatlas2=False, flatten=False)[source]¶
- cotengra.plot.plot_tree(tree, layout='ring', hypergraph_layout='auto', hypergraph_layout_opts=None, k=0.01, iterations=500, span=None, order=None, order_y_pow=1.0, edge_scale=1.0, node_scale=1.0, highlight=(), edge_color='size', edge_colormap='GnBu', edge_max_width=None, node_colormap='YlOrRd', node_color='flops', node_max_size=None, figsize=(5, 5), raw_edge_color=None, raw_edge_alpha=None, tree_root_height=True, tree_alpha=0.8, colorbars=True, plot_raw_graph=True, plot_leaf_labels=False, ax=None)[source]¶
Plot a contraction tree using matplotlib.
- cotengra.plot.plot_contractions(tree, order=None, color_size=(0.6, 0.4, 0.7), color_cost=(0.3, 0.7, 0.5), figsize=(8, 3))[source]¶
- cotengra.plot.plot_contractions_alt(tree, x='peak-size', y='flops', color='stage', size='scaling', width=400, height=400, point_opacity=0.8, color_scheme='lightmulti', x_scale='log', y_scale='log', color_scale='log', size_scale='linear')[source]¶
- cotengra.plot.plot_slicings(slice_finder, color_scheme='RdYlBu_r', relative_flops=False, figsize=(6, 3), point_opacity=0.8)[source]¶
- cotengra.plot.plot_slicings_alt(slice_finder, color_scheme='redyellowblue', relative_flops=False)[source]¶
- cotengra.plot.plot_hypergraph(H, *, edge_color=True, node_color=True, highlight=(), centrality='simple', colormap='plasma', pos=None, dim=2, layout='auto', initial_layout='auto', iterations='auto', k=None, use_forceatlas2=False, flatten=False, node_size=None, node_scale=1.0, edge_alpha=1 / 3, edge_style='solid', hyperedge_style='dashed', draw_edge_labels=None, fontcolor=(0.5, 0.5, 0.5), edge_labels_font_size=8, edge_labels_font_family='monospace', node_labels_font_size=10, node_labels_font_family='monospace', info=None, ax=None, figsize=(5, 5))[source]¶
- cotengra.plot.plot_tree_rubberband(tree, order=None, colormap='Spectral', with_edge_labels=None, with_node_labels=None, highlight=(), centrality=False, layout='auto', node_size=None, node_color=(0.5, 0.5, 0.5, 1.0), edge_color=(0.5, 0.5, 0.5), edge_alpha=1 / 3, edge_style='solid', hyperedge_style='dashed', draw_edge_labels=None, edge_labels_font_size=8, edge_labels_font_family='monospace', iterations=500, ax=None, figsize=(5, 5))[source]¶
Plot a
ContractionTree
using ‘rubberbands’ to represent intermediate contractions / subgraphs. This can be intuitive for small and / or planar contractions.
- cotengra.plot.plot_tree_flat(tree, edge_color=True, leaf_color=True, node_color=(0.5, 0.5, 0.5, 0.5), hyperedge_style='dashed', multiedge_spread=0.05, multiedge_smoothing=0.5, multiedge_midlength=0.5, fontcolor=(0.5, 0.5, 0.5), edge_labels_font_size=6, edge_labels_font_family='monospace', node_labels_font_size=8, node_labels_font_family='monospace', show_sliced=True, figsize=None)[source]¶
Plot a
ContractionTree
as a flat, 2D diagram, including all indices at every intermediate contraction. This can be useful for small contractions, and does not require any graph layout algorithm.- Parameters:
tree (ContractionTree) – The contraction tree to plot.
edge_color (bool or color, optional) – Whether to color the edges, or a specific color to use. If
True
(default), each edge will be colored according to a hash of its index.leaf_color (bool or color, optional) – Whether to color the input nodes, or a specific color to use. If
True
(default), each leaf node will be colored with an automatically generated sequence according to its linear position in the input.node_color (bool or color, optional) – Whether to color the intermediate nodes, or a specific color to use. If
True
(default), each intermediate node will be colored with the average color of its children.hyperedge_style (str, optional) – The linestyle to use for hyperedges, i.e. indices that don’t appeary exactly twice on either inputs or the output.
multiedge_spread (float, optional) – The spread of multi-edges between nodes.
multiedge_smoothing (float, optional) – The smoothing of multi-edges between nodes.
multiedge_midlength (float, optional) – The midlength of multi-edges between nodes.
fontcolor (color, optional) – The color to use for edge and node labels.
edge_labels_font_size (int, optional) – The font size to use for edge labels.
edge_labels_font_family (str, optional) – The font family to use for edge labels.
node_labels_font_size (int, optional) – The font size to use for node labels.
node_labels_font_family (str, optional) – The font family to use for node labels.
show_sliced (bool, optional) – Whether to list sliced indices at the top left.
figsize (tuple, optional) – The size of the figure to create, if not specified will be based on the number of nodes in the tree.
- Returns:
fig (matplotlib.figure.Figure) – The figure containing the plot.
ax (matplotlib.axes.Axes) – The axes containing the plot.