title: Properly reset matplotlib.rcParams dictionary to its original defaults
body: <p><a href="https://stackoverflow.com/a/40371037/3904031">This answer</a> mentions that either</p>
  
  <pre><code>fig = plt.figure()
  fig.patch.set_facecolor('black')
  </code></pre>
  
  <p>or</p>
  
  <pre><code>plt.rcParams['figure.facecolor'] = 'black'
  </code></pre>
  
  <p>will change the value in the rcParams dictionary for the key 'figure.facecolor'.</p>
  
  <p>Suppose that my script has made several changes to the values in a nondeterministic way based on user interaction, and I want to undo all of that and go back to matplotlib's default parameters and behavior.</p>
  
  <p>In the beginning of the script I could check <code>matplotlib.rcParams</code> and store either the whole dictionary, or values for certain keys, and then restore them one at a time or with the <code>.update()</code> method, but I don't know if that's wise because I don't know how else the <code>matplotlib.RcParams</code> instance is used (it's not just a dictionary). It does have a <code>.setdefault()</code> method but I can't understand what help returns on that:</p>
  
  <pre><code>Help on method setdefault in module collections.abc:
  
  setdefault(key, default=None) method of matplotlib.RcParams instance
      D.setdefault(k[,d]) -&gt; D.get(k,d), also set D[k]=d if k not in D
  </code></pre>
  
  <p>Is there some kind of <strong>restore the original default values</strong> feature, or should I just wing-it by updating the whole thing with the copy that I've stored?</p>