@@ -318,7 +318,7 @@ def __init__(self,
318318 self .patch .set_aa (False )
319319
320320 self ._hold = rcParams ['axes.hold' ]
321- self .canvas = None
321+ self .canvas = self . _current_figure_canvas ()
322322
323323 if subplotpars is None :
324324 subplotpars = SubplotParams ()
@@ -330,6 +330,48 @@ def __init__(self,
330330 self .clf ()
331331 self ._cachedRenderer = None
332332
333+ def _current_figure_canvas (self ):
334+ b = rcParams ['backend' ].lower ()
335+ if b == 'agg' :
336+ from backends .backend_agg import FigureCanvasAgg as FigureCanvas
337+ elif b == 'cairo' :
338+ from backends .backend_cairo import FigureCanvasCairo as FigureCanvas
339+ elif b == 'cocoaag' :
340+ from backends .backend_cocoaagg import FigureCanvasCocoaAgg as FigureCanvas
341+ elif b == 'fltkagg' :
342+ from backends .backend_fltkagg import FigureCanvasFltkAgg as FigureCanvas
343+ elif b == 'gdk' :
344+ from backends .backend_gdk import FigureCanvasGDK as FigureCanvas
345+ elif b == 'gtk' :
346+ from backends .backend_gtk import FigureCanvasGTK as FigureCanvas
347+ elif b == 'gtkagg' :
348+ from backends .backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
349+ elif b == 'gtkcairo' :
350+ from backends .backend_gtkcairo import FigureCanvasGTKCairo as FigureCanvas
351+ elif b == 'macosx' :
352+ from backends .backend_macosx import FigureCanvasMac as FigureCanvas
353+ elif b == 'pdf' :
354+ from backends .backend_pdf import FigureCanvasPdf as FigureCanvas
355+ elif b == 'ps' :
356+ from backends .backend_ps import FigureCanvasPS as FigureCanvas
357+ elif b == 'qtagg' :
358+ from backends .backend_qtagg import FigureCanvasQTAgg as FigureCanvas
359+ elif b == 'qt4agg' :
360+ from backends .backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
361+ elif b == 'svg' :
362+ from backends .backend_svg import FigureCanvasSVG as FigureCanvas
363+ elif b == 'template' :
364+ from backends .backend_template import FigureCanvasTemplate as FigureCanvas
365+ elif b == 'tkagg' :
366+ from backends .backend_tkagg import FigureCanvasTkAgg as FigureCanvas
367+ elif b == 'wx' :
368+ from backends .backend_wx import FigureCanvasWx as FigureCanvas
369+ elif b == 'wxagg' :
370+ from backends .backend_wxagg import FigureCanvasWxAgg as FigureCanvas
371+ else :
372+ return None
373+ return FigureCanvas (self )
374+
333375 def _get_axes (self ):
334376 return self ._axstack .as_list ()
335377
0 commit comments