Graph editor widget

This module adds an interface to phitigra, a graph editor widget for Jupyter and JupyterLab. The phitigra optional package should be installed on your Sage installation.

AUTHORS:

  • Radoslav Kirov (2009): initial editor for use with the old sage notebook

  • Jean-Florent Raymond (2022-04-12): replacement with the phitigra package

sage.graphs.graph_editor.graph_editor(graph=None, **display_options)[source]

Return a graph editor widget.

The graph editor widget can be displayed with Jupyter or JupyterLab. It is provided by the phitigra optional package, see https://github.com/jfraymond/phitigra for details about the possible options (changing the width/height of the canvas, the default size and color of vertices, etc.).

INPUT:

  • graph – a graph to edit (default: None)

  • display_options – options for the widget

EXAMPLES:

sage: e = graph_editor()            # optional - phitigra
sage: e.show()                      # not tested
>>> from sage.all import *
>>> e = graph_editor()            # optional - phitigra
>>> e.show()                      # not tested
e = graph_editor()            # optional - phitigra
e.show()                      # not tested

Opening an existing graph:

sage: G = graphs.RandomGNP(10, 0.5)
sage: e = graph_editor(G)           # optional - phitigra
sage: e.show()                      # not tested
>>> from sage.all import *
>>> G = graphs.RandomGNP(Integer(10), RealNumber('0.5'))
>>> e = graph_editor(G)           # optional - phitigra
>>> e.show()                      # not tested
G = graphs.RandomGNP(10, 0.5)
e = graph_editor(G)           # optional - phitigra
e.show()                      # not tested

Retrieving a copy of the drawn graph:

sage: G = graphs.RandomGNP(10, 0.5)
sage: e = graph_editor(G)           # optional - phitigra
sage: H = e.get_graph()             # optional - phitigra
sage: H == G and not H is G         # optional - phitigra
True
>>> from sage.all import *
>>> G = graphs.RandomGNP(Integer(10), RealNumber('0.5'))
>>> e = graph_editor(G)           # optional - phitigra
>>> H = e.get_graph()             # optional - phitigra
>>> H == G and not H is G         # optional - phitigra
True
G = graphs.RandomGNP(10, 0.5)
e = graph_editor(G)           # optional - phitigra
H = e.get_graph()             # optional - phitigra
H == G and not H is G         # optional - phitigra

Using different display options:

sage: e = graph_editor(graphs.PetersenGraph(), width=300, height=300,       # optional - phitigra
....:                  default_radius=12, default_vertex_color='orange',
....:                  default_edge_color='#666', show_vertex_labels=False)
sage: e.show()                                                              # not tested
>>> from sage.all import *
>>> e = graph_editor(graphs.PetersenGraph(), width=Integer(300), height=Integer(300),       # optional - phitigra
...                  default_radius=Integer(12), default_vertex_color='orange',
...                  default_edge_color='#666', show_vertex_labels=False)
>>> e.show()                                                              # not tested
e = graph_editor(graphs.PetersenGraph(), width=300, height=300,       # optional - phitigra
                 default_radius=12, default_vertex_color='orange',
                 default_edge_color='#666', show_vertex_labels=False)
e.show()                                                              # not tested

Note

The editor does not support multigraphs.