title: Scatter plot in a loop only plots the first iteration
body: <p>I am trying to plot several different things in scatter plots by having several subplots and iterating over the remaining categories, but the plots only display the first iteration without throwing any error. To clarify, here is an example of what the data actually look like:</p>
  
  <pre><code>          a kind state property   T
  0  0.905618    I   dry    prop1  10
  1  0.050311    I   wet    prop1  20
  2  0.933696   II   dry    prop1  30
  3  0.114824  III   wet    prop1  40
  4  0.942719   IV   dry    prop1  50
  5  0.276627   II   wet    prop2  10
  6  0.612303  III   dry    prop2  20
  7  0.803451   IV   wet    prop2  30
  8  0.257816   II   dry    prop2  40
  9  0.122468   IV   wet    prop2  50
  </code></pre>
  
  <p>And this is how I generated the example:</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  import matplotlib.pyplot as plt
  from matplotlib import gridspec
  
  kinds = ['I','II','III','IV']
  states = ['dry','wet']
  props = ['prop1','prop2']
  T = [10,20,30,40,50]
  a = np.random.rand(10)
  k = ['I','I','II','III','IV','II','III','IV','II','IV']
  s = ['dry','wet','dry','wet','dry','wet','dry','wet','dry','wet']
  p = ['prop1','prop1','prop1','prop1','prop1','prop2','prop2','prop2','prop2','prop2']
  t = [10,20,30,40,50,10,20,30,40,50]
  df = pd.DataFrame(index=range(10),columns=['a','kind','state','property','T'])
  df['a']=a
  df['kind']=k
  df['state']=s
  df['property']=p
  df['T']=t
  print df
  </code></pre>
  
  <p>Next, I am going to generate 2 rows and 2 columns of subplots, to display variabilities in property1 and property2 in wet and dry states. So I basically slice my dataframe into several smaller ones like this:</p>
  
  <pre><code>first = df[(df['state']=='dry')&amp;(df['property']=='prop1')]
  second = df[(df['state']=='wet')&amp;(df['property']=='prop1')]
  third = df[(df['state']=='dry')&amp;(df['property']=='prop2')]
  fourth = df[(df['state']=='wet')&amp;(df['property']=='prop2')]
  dfs = [first,second,third,fourth]
  </code></pre>
  
  <p>in each of these subplots, which specify certain laboratory conditions, I want to plot the values of <code>a</code> versus <code>T</code> for different kinds of samples. To distinguish between the kinds of samples, I assign different colours and markers to them. So here is my plotting script:</p>
  
  <pre><code>fig = plt.figure(figsize=(8,8.5))
  gs = gridspec.GridSpec(2,2, hspace=0.4, wspace=0.3)
  colours = ['r','b','g','gold'] 
  symbols = ['v','v','^','^']
  titles=['dry 1','wet 1','dry 2','wet 2']
  for no, df in enumerate(dfs):
      ax = fig.add_subplot(gs[no])
      for i, r in enumerate(kinds):
          #print i, r
          df = df[df['kind']==r]
          c = colours[i]
          m = symbols[i]
          plt.scatter(df['T'],df['a'],c=c,s=50.0, marker=m, edgecolor='k')
  
      ax = plt.xlabel('T')
      ax = plt.xticks(T)
      ax = plt.ylabel('A')
      ax = plt.title(titles[no],fontsize=12,alpha=0.75)
  plt.show()
  </code></pre>
  
  <p>But the result only plots the first iteration, in this case kind <code>I</code> in red triangles. If I remove this first item from the iterating lists, it only plots the first variable (kind <code>II</code> in blue triangles).</p>
  
  <p><strong>What am I doing wrong?</strong>
  The figure looks like this, but I would like to have each subplot accordingly populated with red and blue and green and gold markers.
  <a href="https://i.stack.imgur.com/8qUbm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8qUbm.png" alt="Just the red"></a></p>
  
  <p>(Please note this happens with my real data as well, so the problem should not be in the way I generate the example.)</p>