title: How to set seaborn styles on existing matplotlib axes
body: <p>I'm trying to use <code>seaborn</code> to set axes properties for a (potentially large) number of <code>matplotlib</code> subfigures. What I would like to be able to do is generate all the plots with a single call to <code>plt.subplots</code>, and then set the subplot style when each actual plot is generated. Unfortunately it seems that the sns style only matters when the subplot is generated. </p>
  
  <p>The code below is a minimum (non)working example. Ideally the two subfigures would have two different styles, but they do not. </p>
  
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  import seaborn as sns
  
  def makeplt(sub, dat):
      sub.contour(dat)
  
  def makepltwith(sub, dat, style):
      with sns.axes_style(style) as sty:
          sub.contour(dat)
  
  dat = np.arange(100).reshape(10, 10)
  with sns.axes_style('ticks'):
      fig, subs = plt.subplots(ncols=2)
  makeplt(subs[0], dat)
  makepltwith(subs[1], dat, 'darkgrid')
  plt.show()
  </code></pre>
  
  <p>Is there a way to ensure that the second plot has the formatting I want it to have? The best idea I have on my own is to make some use of the <code>sty</code> object to manually reformat the <code>sub</code> object, but I can't come up with a pithy way of running through the formatting.</p>
  
  <p><code>seaborn.__version__=0.7</code>,
  <code>matplotlib.__version__=1.5</code> if that matters.</p>