I don't use wx so i'm not sure if this could be helpful, but you may check the figimage command.
http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.figimage Note that it draws the image directly into the figure, thus no axes is needed. -JJ On Wed, Feb 25, 2009 at 6:09 PM, lionel keene <lionel.ke...@gmail.com> wrote: > Hello all, I've been trying for days but I can't seem to get the > result I'm looking for. I have a 2d array of type "numpy.ndarray" > which I'd like to plot as a simple color map. I'd like to plot it in > the upper-lefthand corner of the client area in a wxPython frame. The > plotting needs to be a very simple 1:1 ratio, for example if the numpy > array has 400 rows and 500 columns, I would like to plot it so that it > assumes 400x500 pixels in the wxPython frame. I do not need axis ticks > and labels, just the colormap plot itself. I can get my figure to plot > (with tick marks and labels since I haven't figured out how to turn > those off) but I cannot size it properly. I've copied a tutorial > example I found and modify it and through tedious trial and error have > gotten half-way to where I need: > > > # First attempt to render data to a window: > > import matplotlib > matplotlib.use('WXAgg') > > from matplotlib import rcParams > import numpy > > import matplotlib.cm as cm > > from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg > > > #from matplotlib.figure import Figure > > from wx import * > > import DataFileTypes as DFT > > > class DataFrame(Frame): > > def __init__(self): > > Frame.__init__(self, None, -1, "Data filename here", > size=DisplaySize()) > > def displayData(self): > > data = None > > # Load data into "data" object using my custom IntData(...) class: > try: > data = DFT.INTData("C:\SAR Test files\Tibet2008.int") > > except DFT.DataFileError: > print("Error opening data file") > > except DFT.ResourceFileError: > print("Error opening resource file") > > > if data: > > # Assume a screen dpi of 96...seems very flakey to me: > ScreenDPI = 96.0 > > > # compute the width and height of figure using this dpi > # and the rows and columns of the data for a 1:1 display ratio: > FigureWidthInInches = (data.numcolumns / ScreenDPI) > FigureHeightInInches = (data.numrows / ScreenDPI) > print(FigureWidthInInches, FigureHeightInInches) > > # Instantiate Figure based on these parameters: > self.fig = > matplotlib.figure.Figur((FigureWidthInInches,FigureHeightInInches), > dpi = ScreenDPI) > self.canvas = FigureCanvasWxAgg(self, -1, self.fig) > > # Put everything into a sizer: > sizer = BoxSizer(VERTICAL) > #sizer.Add(self.canvas, 1, LEFT | TOP | GROW) > sizer.Add(self.canvas, 0, LEFT | TOP) > self.SetSizer(sizer) > # self.Fit() > > a = self.fig.add_axes([0.075, 0.1, 0.75, 0.85]) > self.im = a.imshow(data.getNumpyArray(), > interpolation=None, cmap = data.getCustomColorMap()) > > > > > if __name__ == '__main__': > > app = PySimpleApp() > frame = DataFrame() > frame.displayData() > > frame.Show() > app.MainLoop() > > > It displays but the plot is inside the figure i.e. the colormap of the > data is within the figure that I've sized. matplotlib does this by > design, of course, but I cannot figure out how to defeat it. For one > thing, I don't think I'm sizing the figure correctly by setting > (guessing at) the dpi and computing the inches...just seems wrong, but > I can't find any tutorials or examples that show anything that sizes > figures using pixels or screen coords. > > I always know the dimensions of my data a priori, so let's assume the > following very simple situation: > > - I have a numpy.ndarray of data with 350 rows and 500 columns. How do > I display it in the upper-left hand corner of the frame client with no > tick marks/labels, etc...just the colormap at screen > coords(0,0)->(349,499) (rows,columns)? Could someone post a few lines > to do this? Thanks so much in advance! > > -L > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users