Hi the following code snippet is from a simple wxpython/matplotlib app
# Data object class class PlotData(object): # Constructor (dummy arrays) def __init__(self): self.np = 100 self.xa = numpy.arange(100.0) self.ya = 2.0 * self.xa self.ys = 4.0 * self.xa # Plot window class class PlotWin(object): def __init__(self, data): self.data = data # Store reference to data object self.figure = Figure() # Initialise figure # Create an Axes object to plot on self.ax1 = self.figure.gca() self.ax1.yaxis.tick_left() self.ax1.xaxis.tick_bottom() # Plot the data self.lines=[] self.lines.append(self.ax1.plot(self.data.xa, self.data.ya, 'g')) self.lines.append(self.ax1.plot(self.data.xa, self.data.ys, '-r')) # Update plot with new data def RefreshPlot(self, data): self.lines[0].set_data((self.data.xa,self.data.ya)) self.lines[1].set_data((self.data.xa,self.data.ys)) self.canvas.draw() # Main program if __name__ == "__main__": data = PlotData() pwin = PlotWin(data) pwin.RefreshPlot(data) The plot data changes during the application and I just want to replace the existing data with the new data (which may have a different number of points compared to the old data). I get the Python error "'list' object has no attribute 'set_data'" when the code executes RefreshPlot(). AFAIK lines[0] and lines[1] are 'Line2D' objects (at least that's what Python says they are when I ask to have them printed) , which do have a 'set_data' method. I'm sure there's something really easy that I need to do but just can't see it - all suggestions gratefully received! Thanks in advance Alun Griffiths ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users