Console Graph
ZoomSpec
dataclass
AutoZoom
ConsoleGraph
Bases: Generic[G]
full_viewport
property
The full viewport of the graph that is spanned by the whole graph.
zoom
property
writable
The zoom level of the graph.
Can be set either to a float, a tuple of zoom in x and y direction or a zoom spec / auto zoom mode. Defaults to 1.0, always returns a ZoomSpec or AutoZoom, so a float or tuple is converted to a ZoomSpec.
viewport
property
writable
The viewport that is set by the user (or the full viewport if none is set).
max_width
property
writable
The maximum width of the graph in characters or None if no maximum width is set.
max_height
property
writable
The maximum height of the graph in characters as integer or None if no maximum height is set.
__init__
__init__(graph, layout_engine=GrandalfSugiyamaLayout[G](), console=Console(), viewport=None, max_width=None, max_height=None, zoom=1.0)
A console representation of a networkx graph.
The class conforms to the rich console protocol and can be printed as any other rich renderable. You can pass a layout engine and a specific console that will be used for rendering.
Rendering of nodes and edges happens on object creation and the object size is determined by the graph (no reactive rendering).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
graph |
G
|
A networkx graph object (see networkx.Graph or networkx.DiGraph). |
required |
layout_engine |
LayoutEngine[G]
|
The layout engine used. |
GrandalfSugiyamaLayout[G]()
|
console |
Console
|
The rich console driver used to render. |
Console()
|
viewport |
Region
|
The viewport to render. Defaults to the whole graph. |
None
|
zoom |
float | tuple[float, float] | ZoomSpec | AutoZoom
|
The zoom level, either a float, a tuple of zoom in x and y direction or a zoom spec / auto zoom mode. Defaults to 1.0. |
1.0
|
add_node
Add a node to the console graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
node |
Hashable
|
The node to add. |
required |
position |
FloatPoint | None
|
If set add the node at the specific position in graph space coordinates. |
None
|
data |
dict[str, Any] | None
|
The data and attributes of the node. |
None
|
update_node
Update a node position or attributes (data).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
node |
Hashable
|
The node to update. |
required |
position |
FloatPoint | None
|
A new position if the node should be moved, by default None. |
None
|
data |
dict[str, Any] | None
|
A new or updated data dictionary, by default None. |
None
|
update_data |
bool
|
Whether to replace or update the data dictionary, by default True. |
True
|
Returns:
Type | Description |
---|---|
None
|
None |
remove_node
Removes the specified node from the graph, along with any edges that are connected to it.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
node |
Hashable
|
The node to remove. |
required |
Returns:
Type | Description |
---|---|
None
|
None |
add_edge
Add an edge between existing nodes in the graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
u |
Hashable
|
The source node. |
required |
v |
Hashable
|
The target node. |
required |
data |
dict[str, Any] | None
|
The data and attributes of the edge. |
None
|
Raises:
Type | Description |
---|---|
ValueError
|
Raised if one of the edges does not exist in the graph. |
update_edge
Update edge attributes (data).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
u |
Hashable
|
The source node of the edge. |
required |
v |
Hashable
|
The target node of the edge. |
required |
data |
dict[str, Any]
|
The new or updated data dictionary. |
required |
update_data |
bool
|
Whether to replace or update the data dictionary, by default True. |
True
|
update_layout |
bool
|
Whether to update the layout of the edge, by default True. |
True
|
Raises:
Type | Description |
---|---|
RuntimeError
|
If the zoom factor has not been computed yet. |
Returns:
Type | Description |
---|---|
None
|
None |
remove_edge
Removes an edge from the graph.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
u |
Hashable
|
The source node of the edge. |
required |
v |
Hashable
|
The target node of the edge. |
required |
Returns:
Type | Description |
---|---|
None
|
None |
to_graph_coordinates
Converts a point from view coordinates to graph coordinates.
This means applying the inverse zoom and offset to the point.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
p |
Point
|
The point to convert. |
required |
Returns:
Name | Type | Description |
---|---|---|
FloatPoint |
FloatPoint
|
The converted point in graph coordinates. |
to_view_coordinates
Converts a point from graph coordinates to view coordinates.
This means applying the zoom and offset to the point.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
p |
FloatPoint
|
The point to convert. |
required |
Returns:
Name | Type | Description |
---|---|---|
Point |
Point
|
The converted point in view coordinates. |