matplotlib.figure and basemap

I wrote a bunch of graph scripts for creating on-the-fly line plots with
django. Since I'm running the site on a low memory VPS, I need to run apache
in multi-threaded mode, which means all my code needs to be thread-safe. I
was using Pyplot a lot, which is not thread-safe. A solution I came up with
which worked pretty well was to replace this:

import matplotlib.pyplot as plt
self.fig = plt.figure(figsize=(3.5, 2.5),)

with this:

from matplotlib.figure import Figure
self.fig = Figure(figsize=(3.5, 2.5),)

It worked like a charm on all my graphs. I have a few maps that I created
with Basemap which this method does not seem to work on. My code works
perfectly fine with the first snippet posted above, but if I change it to
the snippet below, I get this error:

File "/srv/proj/maps/" in as_response
  40. return plot_png2(self.plot).__call__()
File "/srv/proj/graphs/" in __call__
  50. edgecolor="white")
File "/usr/lib/pymodules/python2.6/matplotlib/" in savefig
  1033. self.canvas.print_figure(*args, **kwargs)

the second item in the traceback is this line:


Any ideas on whats going on here?


View this message in context:
Sent from the matplotlib - users mailing list archive at