title: Generating a PNG with matplotlib when DISPLAY is undefined
body: <p>I am trying to use networkx with Python. When I run this program it get this error. Is there anything missing?</p>
  
  <pre><code>#!/usr/bin/env python
  
  import networkx as nx
  import matplotlib
  import matplotlib.pyplot
  import matplotlib.pyplot as plt
  
  G=nx.Graph()
  G.add_node(1)
  G.add_nodes_from([2,3,4,5,6,7,8,9,10])
  #nx.draw_graphviz(G)
  #nx_write_dot(G, 'node.png')
  nx.draw(G)
  plt.savefig("/var/www/node.png")
  
  
  Traceback (most recent call last):
    File "graph.py", line 13, in &lt;module&gt;
      nx.draw(G)
    File "/usr/lib/pymodules/python2.5/networkx/drawing/nx_pylab.py", line 124, in draw
      cf=pylab.gcf()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf
      return figure()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 254, in figure
      **kwargs)
    File "/usr/lib/pymodules/python2.5/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
      window = Tk.Tk()
    File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1650, in __init__
      self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
  _tkinter.TclError: no display name and no $DISPLAY environment variable
  </code></pre>
  
  <hr>
  
  <p>I get a different error now:</p>
  
  <pre><code>#!/usr/bin/env python
  
  import networkx as nx
  import matplotlib
  import matplotlib.pyplot
  import matplotlib.pyplot as plt
  
  matplotlib.use('Agg')
  
  G=nx.Graph()
  G.add_node(1)
  G.add_nodes_from([2,3,4,5,6,7,8,9,10])
  #nx.draw_graphviz(G)
  #nx_write_dot(G, 'node.png')
  nx.draw(G)
  plt.savefig("/var/www/node.png")
  </code></pre>
  
  <hr>
  
  <pre><code>/usr/lib/pymodules/python2.5/matplotlib/__init__.py:835: UserWarning:  This call to matplotlib.use() has no effect
  because the the backend has already been chosen;
  matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
  or matplotlib.backends is imported for the first time.
  
    if warn: warnings.warn(_use_error_msg)
  Traceback (most recent call last):
    File "graph.py", line 15, in &lt;module&gt;
      nx.draw(G)
    File "/usr/lib/python2.5/site-packages/networkx-1.2.dev-py2.5.egg/networkx/drawing/nx_pylab.py", line 124, in draw
      cf=pylab.gcf()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf
      return figure()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 254, in figure
      **kwargs)
    File "/usr/lib/pymodules/python2.5/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
      window = Tk.Tk()
    File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1650, in __init__
      self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
  _tkinter.TclError: no display name and no $DISPLAY environment variable
  </code></pre>
  
  <hr>
  
  <p>I get a different error now:</p>
  
  <pre><code>#!/usr/bin/env python
  
  import networkx as nx
  import matplotlib
  import matplotlib.pyplot
  import matplotlib.pyplot as plt
  
  matplotlib.use('Agg')
  
  G=nx.Graph()
  G.add_node(1)
  G.add_nodes_from([2,3,4,5,6,7,8,9,10])
  #nx.draw_graphviz(G)
  #nx_write_dot(G, 'node.png')
  nx.draw(G)
  plt.savefig("/var/www/node.png")
  </code></pre>
  
  <hr>
  
  <pre><code>/usr/lib/pymodules/python2.5/matplotlib/__init__.py:835: UserWarning:  This call to matplotlib.use() has no effect
  because the the backend has already been chosen;
  matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
  or matplotlib.backends is imported for the first time.
  
    if warn: warnings.warn(_use_error_msg)
  Traceback (most recent call last):
    File "graph.py", line 15, in &lt;module&gt;
      nx.draw(G)
    File "/usr/lib/python2.5/site-packages/networkx-1.2.dev-py2.5.egg/networkx/drawing/nx_pylab.py", line 124, in draw
      cf=pylab.gcf()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 276, in gcf
      return figure()
    File "/usr/lib/pymodules/python2.5/matplotlib/pyplot.py", line 254, in figure
      **kwargs)
    File "/usr/lib/pymodules/python2.5/matplotlib/backends/backend_tkagg.py", line 90, in new_figure_manager
      window = Tk.Tk()
    File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1650, in __init__
      self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
  _tkinter.TclError: no display name and no $DISPLAY environment variable
  </code></pre>