#!/usr/bin/python from matplotlib.figure import Figure from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas # from matplotlib.backends.backend_gd import FigureCanvasGD as FigureCanvas import sys figure = Figure() ax = figure.add_subplot(111) ax.plot([1, 5, 3]) canvas = FigureCanvas(figure) # This works to save image to a file as a PNG canvas.print_figure("foo.png") # This works to send image as a PNG to stdout # canvas.print_figure(sys.stdout) # Works with GD, but with Agg this doesn't work, error is # File "/usr/lib/python2.3/site-packages/matplotlib/backends/backend_agg.py", line 453, in print_figure # self.renderer._renderer.write_png(filename) # TypeError: Could not convert object to file pointer import StringIO buffer = StringIO.StringIO() canvas.print_figure(buffer) print len(buffer.getvalue())