title: Unable to save matplotlib.figure Figure, canvas is None
body: <p>Consider (Assume code runs without error): </p>
  
  <pre><code>import matplotlib.figure as matfig
  
      ind = numpy.arange(N)
      width = 0.50;
      fig = matfig.Figure(figsize=(16.8, 8.0))
      fig.subplots_adjust(left=0.06, right = 0.87)
      ax1 = fig.add_subplot(111)
      prev_val = None
      fig.add_axes(ylabel = 'Percentage(%)',xlabel='Wafers',title=title,xticks=(ind+width/2.0,source_data_frame['WF_ID']))
      fig.add_axes(ylim=(70,100))
  
      for key,value in bar_data.items():
          ax1.bar(ind,value, width,color='#40699C', bottom=prev_val)
          if prev_val:
              prev_val = [a+b for (a,b) in zip(prev_val,value)]
          else:
              prev_val=value
  
      names= []
      for i in range(0,len(col_data.columns)):
          names.append(col_data.columns[i])
      ax1.legend(names,bbox_to_anchor=(1.15, 1.02))
  </code></pre>
  
  <p>I now want to save my figure with <code>fig.savefig(outputPath, dpi=300)</code>, but I get <code>AttributeError: 'NoneType' object has no attribute 'print_figure'</code>, because <code>fig.canvas</code> is None. The sub plots should be on the figures canvas, so it shouldn't be None. I think i'm missing a key concept about matplot figures canvas.How can I update fig.canvas to reflect the current Figure, so i can use <code>fig.savefig(outputPath, dpi=300)</code>? Thanks!</p>