summaryrefslogtreecommitdiff
path: root/examples/graphviz_drawing/plot_attributes.py
blob: 1bee84d3401e60d6247b69e010d1fbde9db2fad8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""
Attributes
==========

Example illustrating how attributes of nodes, edges, and graphs are handled
during conversion to/from `~pygraphviz.AGraph`.
"""

import networkx as nx

G = nx.Graph()
G.add_edge(1, 2, color="red")
G.add_edge(2, 3, color="red")
G.add_node(3)
G.add_node(4)

A = nx.nx_agraph.to_agraph(G)  # convert to a graphviz graph
A.draw("attributes.png", prog="neato")  # Draw with pygraphviz

# convert back to networkx Graph with attributes on edges and
# default attributes as dictionary data
X = nx.nx_agraph.from_agraph(A)
print("edges")
print(list(X.edges(data=True)))
print("default graph attributes")
print(X.graph)
print("node node attributes")
print(X.nodes.data(True))