Hello List, I found a problem that masked "pcolorfast" does not work properly in zooming, It seems that masked area is not refreshed after zooming on "WXAgg". I think "pcolorfast" works well on pylab.plot though.
"pcolormesh" is the same while "pcolor"acts appropriately, Please look at the attached picture and try the sample program. My environment is; Windows XP Python 2.4 WxPython 2.8 matplotlib 0.91.2 Noriko Minakawa
<<attachment: AfterZoom.JPG>>
#!/usr/bin/env python import numpy as npy import matplotlib.numerix as nx import matplotlib.numerix.ma as ma from matplotlib import cm, colors import matplotlib matplotlib.use('WXAgg') from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas from matplotlib.backends.backend_wx import NavigationToolbar2Wx from matplotlib.figure import Figure import wx class CanvasFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1, 'CanvasFrame',size=(550,350)) # self.SetBackgroundColour(wx.NamedColor("WHITE")) self.figure = Figure() ax1 = self.figure.add_subplot(121) ax2 = self.figure.add_subplot(122) x = npy.arange(0, 4.0, 0.05, dtype=float) y = npy.arange(0, 5.0, 0.05, dtype=float) z = npy.sqrt(x[npy.newaxis,:-1]**2 + y[:-1,npy.newaxis]**2) Z = ma.masked_where(z < 1, z) X, Y = npy.meshgrid(x,y) ax1.pcolor(X,Y,Z) ax2.pcolorfast(X,Y,Z) ax1.set_title('pcolor') ax2.set_title('pcolorfast') self.canvas = FigureCanvas(self, -1, self.figure) self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) self.Fit() self.add_toolbar() # comment this out for no toolbar def add_toolbar(self): self.toolbar = NavigationToolbar2Wx(self.canvas) self.toolbar.Realize() tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wx.Size(fw, th)) self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) # update the axes menu on the toolbar self.toolbar.update() def OnPaint(self, event): self.canvas.draw() class App(wx.App): def OnInit(self): 'Create the main window and insert the custom frame' frame = CanvasFrame() frame.Show(True) return True app = App(0) app.MainLoop()
------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users