Recently, looking at some algorithms, we need to show the data structure of the abstract graph in a visual way, I thought matplotlib might have potential support, and found a module networkx about the calculation and display of graphs. This module is very convenient to use, support dict based adjacency table, to assist graph theory learning is very good.
#-*-encoding:utf-8-*- fromMatplotlibImportPyplot as PltImportNetworkx as NxN= { 'a': {'b','C','D','e','F'}, 'b': {'C','e'}, 'C': {'D'}, 'D': {'e'}, 'e': {'F'}, 'F': {'C','g','h'}, 'g': {'F','h'}, 'h': {'F','g'},}labels= {I:i forIinchN.keys ()} G=NX. DiGraph (N) POS=Nx.spring_layout (g) Nx.draw (g, POS, Node_color='R', edge_color='b') Nx.draw_networkx_labels (G, POS, labels, font_size=16, font_color='g') Plt.axis ('off') Plt.savefig ("Labels_and_colors.png")#Save as PNGPlt.show ()#Display
Visualization of graphs