wxList and FigureCanvasWx

RE: [Matplotlib-users] wxList and FigureCanvasWx
John –

Thanks for the help! Your example cleared up a lot of problems. I’ll send you a screen dump of what I’m doing when it’s ready.

Dave Engelsma

Lacks Wheel Trim Systems


-----Original Message-----

From: John Hunter [mailto:jdhunter@…4…]

Sent: Monday, May 03, 2004 4:52 PM

To: Engelsma, Dave

Cc: matplotlib-users@lists.sourceforge.net

Subject: Re: [Matplotlib-users] wxList and FigureCanvasWx

> The example is included below.  I'll add it to the examples
> dir for people who want to work directly with the Agg canvas
> and renderer.

oops, left out a critical line - adding the axes to the figure.

Here is a modified example, which also demonstrates initializing a

Numeric array from the string and passing the image off to PIL…


This is an example that shows you how to work directly with the agg

figure canvas to create a figure using the pythonic API.

In this example, the contents of the agg canvas are extracted to a

string, which can in turn be passed off to PIL or put in a numeric



#!/usr/bin/env python

from matplotlib.backends.backend_agg import FigureCanvasAgg

from matplotlib.figure import Figure

from matplotlib.axes import Subplot

from matplotlib.mlab import normpdf

from matplotlib.numerix import randn

fig = Figure(figsize=(5,4), dpi=100)

ax = Subplot(fig, 111)


canvas = FigureCanvasAgg(fig)

mu, sigma = 100, 15

x = mu + sigma*randn(10000)

the histogram of the data

n, bins, patches = ax.hist(x, 50, normed=1)

add a ‘best fit’ line

y = normpdf( bins, mu, sigma)

line, = ax.plot(bins, y, ‘r–’)




ax.set_title(r’\rm{Histogram of IQ: }\mu=100, \sigma=15')

ax.set_xlim( (40, 160))

ax.set_ylim( (0, 0.03))


s = canvas.tostring_rgb() # save this and convert to bitmap as needed

get the figure dimensions for creating bitmaps or numeric arrays,


l,b,w,h = fig.bbox.get_bounds()

w, h = int(w), int(h)

if 0:

# convert to a Numeric array
X = fromstring(s, UInt8)
X.shape = h, w, 3

if 0:

# pass off to PIL
import Image
im = Image.fromstring( "RGB", (w,h), s)