title: Create dynamic updated graph with Python
body: <p>I need your help to write a script in Python that will take dynamically changed  data, the source of data is not matter here, and display graph on the screen.</p>
  
  <p>I know how to use matplotlib, but the problem with matplotlib, that I can display graph only once, at the end of the script. I need to be able not only to display graph one time, but also update it on the fly, each time when data changes.</p>
  
  <p>I found that it is possible to use wxPython with matplotlib to do this, but it is little bit complicate to do this for me, because i am not familiar with wxPython at all. </p>
  
  <p>So I will be very happy if someone will show me simple example how to use  wxPython with matplotlib to show and update simple graph. 
  Or, if it is some other way to do this, it will be good to me too.</p>
  
  <p>PS:<br>
  Ok, since no one answered and looked at matplotlib help noticed by @janislaw and wrote some code. This is some dummy example:</p>
  
  <pre><code>
  import time
  import matplotlib.pyplot as plt
  
  
  def data_gen():
      a=data_gen.a
      if a>10:
          data_gen.a=1
      data_gen.a=data_gen.a+1
      return range (a,a+10)
  
  def run(*args):
      background = fig.canvas.copy_from_bbox(ax.bbox)
  
      while 1:
          time.sleep(0.1)
          # restore the clean slate background
          fig.canvas.restore_region(background)
          # update the data
          ydata = data_gen()
          xdata=range(len(ydata))
  
          line.set_data(xdata, ydata)
  
          # just draw the animated artist
          ax.draw_artist(line)
          # just redraw the axes rectangle
          fig.canvas.blit(ax.bbox)
  
  data_gen.a=1
  fig = plt.figure()
  ax = fig.add_subplot(111)
  line, = ax.plot([], [], animated=True)
  ax.set_ylim(0, 20)
  ax.set_xlim(0, 10)
  ax.grid()
  
  manager = plt.get_current_fig_manager()
  manager.window.after(100, run)
  
  plt.show()
  </code></pre>
  
  <p>This implementation have problems, like script stops if you trying to move the window. But basically it can be used.</p>