#

Note

This documents the development version of NetworkX. Documentation for the current release can be found here.

#

networkx.drawing.nx_pylab.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.drawing.layout for functions that compute node positions.

  • arrows (bool, optional (default=True)) – For directed graphs, if True draw arrowheads. Note: Arrows will be the same color as edges.

  • arrowstyle (str, optional (default=’-|>’)) – For directed graphs, choose the style of the arrowsheads. See :py:class: matplotlib.patches.ArrowStyle for more options.

  • arrowsize (int, optional (default=10)) – For directed graphs, choose the size of the arrow head head’s length and width. See :py:class: matplotlib.patches.FancyArrowPatch for attribute mutation_scale for more info.

  • 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 or array of colors (default=’#1f78b4’)) – Node color. Can be a single color or a sequence of colors with the same length as nodelist. Color can be string, or rgb (or rgba) tuple of floats from 0-1. 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=None)) – 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 or array of colors (default=’k’)) – Edge color. Can be a single color or a sequence of colors with the same length as edgelist. Color can be string, or rgb (or rgba) tuple of floats from 0-1. 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

  • kwds (optional keywords) – See networkx.draw_networkx_nodes(), networkx.draw_networkx_edges(), and networkx.draw_networkx_labels() for a description of optional keywords.

Notes

For directed graphs, arrows are drawn at the head end. Arrows can be turned off with keyword arrows=False.

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.github.io/documentation/latest/auto_examples/index.html