title: plotnine shows discrete values in the wrong place
body: <p>I am trying to make a figure that shows time on the x-axis and dots on the y-axis whenever a column has a specific (discrete) value.</p>
  <p>Here is some example data:</p>
  <pre><code>dat = pd.DataFrame({
      'time': [0, 15, 30],
      'A': [np.nan, np.nan, 'A'],
      'B': ['B', 'B', np.nan],
  })
  </code></pre>
  <p>Now I am trying to show a dot in the 'A' column whenever column 'A' shows letter 'A'. I tried this:</p>
  <pre><code>(gg.ggplot(dat, gg.aes('time', 'A'))
    + gg.geom_point()
    + gg.scale_y_discrete(name='', limits=list('A'))
  )
  </code></pre>
  <p>But nothing shows up:
  <a href="https://i.stack.imgur.com/2aLym.png" rel="nofollow noreferrer">link to figure</a></p>
  <p>Then, I changed the y-limits of the plot:</p>
  <pre><code>(gg.ggplot(dat, gg.aes('time'))
    + gg.geom_point(gg.aes(y='A'))
    + gg.scale_y_discrete(name='', limits=list('ABCD'))
  )
  </code></pre>
  <p>Now, the dot I wanted shows up: Column 'A' shows value 'A' at time 30, and indeed, theres a dot there. But very weirdly, the plot also shows two dots in the 'D' column:
  <a href="https://i.stack.imgur.com/xQwpK.png" rel="nofollow noreferrer">link to figure</a></p>
  <p>I played around a little bit with limits and column names, and no dots show up at all as long as the limits include less than 4 values; after that, the dots I want show up, but the NaN values also get plotted, in the column of the last letter in the limits.</p>
  <p>Does anyone know what is going on here? And could you help me make this figure?</p>