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

Reply via email to