summaryrefslogtreecommitdiff
path: root/examples/algorithms/plot_greedy_coloring.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/algorithms/plot_greedy_coloring.py')
-rw-r--r--examples/algorithms/plot_greedy_coloring.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/algorithms/plot_greedy_coloring.py b/examples/algorithms/plot_greedy_coloring.py
new file mode 100644
index 00000000..fcc6a0f0
--- /dev/null
+++ b/examples/algorithms/plot_greedy_coloring.py
@@ -0,0 +1,35 @@
+"""
+===============
+Greedy Coloring
+===============
+
+We attempt to color a graph using as few colors as possible, where no neighbours
+of a node can have same color as the node itself.
+"""
+import networkx as nx
+import matplotlib.pyplot as plt
+import matplotlib.colors as mpl
+
+G = nx.dodecahedral_graph()
+
+# Apply greedy coloring
+graph_coloring = nx.greedy_color(G)
+unique_colors = set(graph_coloring.values())
+
+# Assign colors to nodes based on the greedy coloring
+graph_color_to_mpl_color = dict(zip(unique_colors, mpl.TABLEAU_COLORS))
+node_colors = [graph_color_to_mpl_color[graph_coloring[n]] for n in G.nodes()]
+
+pos = nx.spring_layout(G, seed=14)
+nx.draw(
+ G,
+ pos,
+ with_labels=True,
+ node_size=500,
+ node_color=node_colors,
+ edge_color="grey",
+ font_size=12,
+ font_color="#333333",
+ width=2,
+)
+plt.show()