Skip to content

Commit

Permalink
make plots less dense, enable plotting for igraph (networkx#4791)
Browse files Browse the repository at this point in the history
Make igraph plotting example render in gallery
  • Loading branch information
MridulS authored and cvanelteren committed Apr 22, 2024
1 parent 186bbcf commit dc06088
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
29 changes: 18 additions & 11 deletions examples/external/plot_igraph.py
Expand Up @@ -15,30 +15,37 @@
# NetworkX to igraph
# ------------------

G = nx.dense_gnm_random_graph(1000, 2000)
G = nx.dense_gnm_random_graph(30, 40, seed=42)

# largest connected component
components = nx.connected_components(G)
largest_component = max(components, key=len)
H = G.subgraph(largest_component)

# networkx draw
nx.draw(H)
plt.show()

# convert to igraph
g = ig.Graph.from_networkx(G)
h = ig.Graph.from_networkx(H)


# Plot the same network with NetworkX and igraph
fig, (ax0, ax1) = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))

# NetworkX draw
ax0.set_title("Plot with NetworkX draw")
nx.draw_kamada_kawai(H, node_size=50, ax=ax0)

## TODO: uncomment this once python-igraph 0.9 is released
# igraph draw
# layout = g.layout()
# ig.plot(g, layout=layout)
ax1.set_title("Plot with igraph plot")
layout = h.layout_kamada_kawai()
ig.plot(h, layout=layout, target=ax1)
plt.axis("off")
plt.show()


# %%
# igraph to NetworkX
# ------------------

g = ig.Graph.GRG(100, 0.2)
g = ig.Graph.GRG(30, 0.2)
G = g.to_networkx()
nx.draw(G)
nx.draw(G, node_size=50)
plt.show()
2 changes: 1 addition & 1 deletion requirements/example.txt
Expand Up @@ -3,4 +3,4 @@ momepy>=0.4
contextily>=1.0
seaborn>=0.11
cairocffi>=1.2
python-igraph>=0.8.3
python-igraph>=0.9

0 comments on commit dc06088

Please sign in to comment.