matplotlib.image.AxesImage can't work.

I just want to show a matplotlib.image.AxesImage on a figure. But It can't
work properly. Can somebody help me? The code are following: when I run it
, It just show a white figure. But I Set it cm.Greens .It doesn't work .
Why?

# -*- coding:gb2312 -*-
import matplotlib
matplotlib.use("WXAgg")
matplotlib.interactive(True)
from matplotlib.backends.backend_wx import FigureCanvasWx
from matplotlib.figure import Figure
from matplotlib.axes import Subplot
from numpy import *
import wx

class ShowPlot():
    def __init__(self,Frame):
        delta = 0.025
        x = arange(-2.0, 2.0, delta)
        y = arange(-2.0, 2.0, delta)
        X, Y = meshgrid(x, y)
        Z1 = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
        Z2 = bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
        Z = 10.0 * (Z2 - Z1)
        levels = arange(-1.2, 1.6, 0.2)
        self.fig = Figure((6,6), 70)
        self.canvas = FigureCanvasWx(Frame, -1, self.fig)
        self.axe=self.fig.add_axes([0.1, 0.1, 0.8, 0.8])
       
i=matplotlib.image.AxesImage(self.axe,data=Z,interpolation='bilinear',
origin='lower',cmap=cm.Greens, extent=(-2,2,-2,2))
app = wx.PySimpleApp()
f=wx.Frame(None,size=(600,600))
f.Show(True)
ShowPlot(f)
app.MainLoop()

···

--
View this message in context: http://www.nabble.com/matplotlib.image.AxesImage-can't-work.-tf4897267.html#a14025951
Sent from the matplotlib - devel mailing list archive at Nabble.com.

AxesImage is not meant to be instantiated directly, but to be created
via ax.imshow, so I suggest you do that. imshow will return and
AxesImage instance to you. But it looks like your problem is you did
not add the image to the axes via ax.images.append.

For future reference, this type of question is probably best directed
to matplotlib-users, since the devel list is for matplotlib
development rather than usage.

Thanks,
JDH

···

On Nov 29, 2007 7:34 AM, hjc520070 <jiacong_huang@...572...> wrote:

I just want to show a matplotlib.image.AxesImage on a figure. But It can't
work properly. Can somebody help me? The code are following: when I run it
, It just show a white figure. But I Set it cm.Greens .It doesn't work .

Thank u for your help. I did it as your reply. But some questions appear
again . Can you give me some more advice , your help will be appreciated.
Code are as following: You know when I do "self.ax.images.append(self.im)"
in pylab . It do properly , But ,it fail here. Thank you!

# -*- coding:gb2312 -*-
import matplotlib
matplotlib.use("WXAgg")
matplotlib.interactive(True)
from matplotlib.backends.backend_wx import FigureCanvasWx
from matplotlib.figure import Figure
from matplotlib.axes import *
from numpy import *
import wx
from matplotlib.image import NonUniformImage
import numpy as npy

···

#---------------------------------------------------

class DynamicPlot():
    def __init__(self,Frame):
        x = npy.arange(-4, 4, 0.005)
        y = npy.arange(-4, 4, 0.005)
        z = npy.sqrt(x[npy.newaxis,:]**2 + y[:,npy.newaxis]**2)

        self.fig = Figure((8,8), 75)
        self.canvas = FigureCanvasWx(Frame, -1, self.fig)
        self.ax=self.fig.add_subplot(111)
        self.im = NonUniformImage(self.ax)
        self.im.set_data(x, y, z)
        self.ax.images.append(self.im)
        self.ax.imshow(self.im)
app = wx.PySimpleApp()
f=wx.Frame(None,size=(600,600))
f.Show(True)
DynamicPlot(f)
app.MainLoop()
--
View this message in context: http://www.nabble.com/matplotlib.image.AxesImage-can't-work.-tf4897267.html#a14057748
Sent from the matplotlib - devel mailing list archive at Nabble.com.