Console Graph
ZoomSpec
dataclass
AutoZoom
ConsoleGraph
ConsoleGraph(
graph: DiGraph,
layout_engine: core.LayoutEngine = core.SugiyamaLayout(
core.LayoutDirection.TOP_DOWN
),
console: Console = Console(),
viewport: Region | None = None,
max_width: int | None = None,
max_height: int | None = None,
zoom: float
| tuple[float, float]
| ZoomSpec
| AutoZoom = 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 digraph object (networkx.DiGraph). |
required |
layout_engine
|
LayoutEngine[G]
|
The layout engine used. |
SugiyamaLayout(TOP_DOWN)
|
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
|
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.
add_node
add_node(
node: Hashable,
position: FloatPoint | None = None,
data: dict[str, Any] | None = None,
) -> None
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_node(
node: Hashable,
position: FloatPoint | None = None,
data: dict[str, Any] | None = None,
update_data: bool = True,
) -> None
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(
u: Hashable,
v: Hashable,
data: dict[str, Any],
update_data: bool = True,
update_layout: bool = True,
) -> None
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. |