NetworkX includes functions for drawing a graph using matplotlib. This is an example using the great IPython Notebook (started with ipython3 notebook --pylab inline):

Nice, for a start. But how can I influence attributes of the drawing, like coloring, line width and labelling? I have not worked with matplotlib before.
IPython is a great tool for finding out what functions (and objects) can do. If you type
you see
And if you therefore type
you will see
So, armed with this information, and a bit of experimentation, it is not hard to arrive at:
which yields