title: When is plt.show() required to show a plot and when is it not?
body: <p>Since the following code will show a plot without <code>plt.show()</code>, what is the point of <code>plt.show()</code>? </p>
  
  <p>Please tell me when <code>plt.show()</code> is required as this would allow me to appreciate the intricacy of matplotlib better.</p>
  
  <p>N.B.: I'm using this in Spyder (Anaconda)</p>
  
  <pre><code>import matplotlib.pyplot as plt
  plt.subplot(211)             # the first subplot in the first figure
  plt.plot([1, 2, 3])
  </code></pre>