Warning

This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.

draw_networkx

draw_networkx(G, pos=None, arrows=True, with_labels=True, **kwds)[source]

Draw the graph G using Matplotlib.

Draw the graph with Matplotlib with options for node positions, labeling, titles, and many other drawing features. See draw() for simple drawing without labels or axes.

Parameters:
  • G (graph) – A networkx graph
  • pos (dictionary, optional) – A dictionary with nodes as keys and positions as values. If not specified a spring layout positioning will be computed. See networkx.layout for functions that compute node positions.
  • arrows (bool, optional (default=True)) – For directed graphs, if True draw arrowheads.
  • with_labels (bool, optional (default=True)) – Set to True to draw labels on the nodes.
  • ax (Matplotlib Axes object, optional) – Draw the graph in the specified Matplotlib axes.
  • nodelist (list, optional (default G.nodes())) – Draw only specified nodes
  • edgelist (list, optional (default=G.edges())) – Draw only specified edges
  • node_size (scalar or array, optional (default=300)) – Size of nodes. If an array is specified it must be the same length as nodelist.
  • node_color (color string, or array of floats, (default=’r’)) – Node color. Can be a single color format string, or a sequence of colors with the same length as nodelist. If numeric values are specified they will be mapped to colors using the cmap and vmin,vmax parameters. See matplotlib.scatter for more details.
  • node_shape (string, optional (default=’o’)) – The shape of the node. Specification is as matplotlib.scatter marker, one of ‘so^>v<dph8’.
  • alpha (float, optional (default=1.0)) – The node and edge transparency
  • cmap (Matplotlib colormap, optional (default=None)) – Colormap for mapping intensities of nodes
  • vmin,vmax (float, optional (default=None)) – Minimum and maximum for node colormap scaling
  • linewidths ([None | scalar | sequence]) – Line width of symbol border (default =1.0)
  • width (float, optional (default=1.0)) – Line width of edges
  • edge_color (color string, or array of floats (default=’r’)) – Edge color. Can be a single color format string, or a sequence of colors with the same length as edgelist. If numeric values are specified they will be mapped to colors using the edge_cmap and edge_vmin,edge_vmax parameters.
  • edge_cmap (Matplotlib colormap, optional (default=None)) – Colormap for mapping intensities of edges
  • edge_vmin,edge_vmax (floats, optional (default=None)) – Minimum and maximum for edge colormap scaling
  • style (string, optional (default=’solid’)) – Edge line style (solid|dashed|dotted,dashdot)
  • labels (dictionary, optional (default=None)) – Node labels in a dictionary keyed by node of text labels
  • font_size (int, optional (default=12)) – Font size for text labels
  • font_color (string, optional (default=’k’ black)) – Font color string
  • font_weight (string, optional (default=’normal’)) – Font weight
  • font_family (string, optional (default=’sans-serif’)) – Font family
  • label (string, optional) – Label for graph legend

Notes

For directed graphs, “arrows” (actually just thicker stubs) are drawn at the head end. Arrows can be turned off with keyword arrows=False. Yes, it is ugly but drawing proper arrows with Matplotlib this way is tricky.

Examples

>>> G=nx.dodecahedral_graph()
>>> nx.draw(G)
>>> nx.draw(G,pos=nx.spring_layout(G)) # use spring layout
>>> import matplotlib.pyplot as plt
>>> limits=plt.axis('off') # turn of axis

Also see the NetworkX drawing examples at https://networkx.org/documentation/latest/gallery.html