title: Altair: how to include a place in a bar chart for a value that has no data
body: <p>I have data that looks like:</p>
  
  <pre><code>data = {'ColA': {('A', 'A-1'): 'w',
                   ('A', 'A-2'): 'w',
                   ('A', 'A-3'): 'w',
                   ('B', 'B-1'): 'q',
                   ('B', 'B-2'): 'q',
                   ('B', 'B-3'): 'r',
                   ('C', 'C-1'): 'w',
                   ('C', 'C-2'): 'q',
                   ('C', 'C-3'): 'q',
                   ('C', 'C-4'): 'r'},
          'ColB': {('A', 'A-1'): 'r',
                   ('A', 'A-2'): 'w',
                   ('A', 'A-3'): 'w',
                   ('B', 'B-1'): 'q',
                   ('B', 'B-2'): 'q',
                   ('B', 'B-3'): 'e',
                   ('C', 'C-1'): 'e',
                   ('C', 'C-2'): 'q',
                   ('C', 'C-3'): 'r',
                   ('C', 'C-4'): 'w'}}
  </code></pre>
  
  <p>I then do the following to generate two bar charts:</p>
  
  <pre><code>df               = pd.DataFrame(data)
  df[ df.columns ] = df[ df.columns ].astype('category')
  df.index         = pd.Index( [ ': '.join( x ) for x in list( df.index.to_flat_index() ) ] )
  
  X = alt.X( alt.repeat(), type = 'nominal' )
  
  Y_scale = alt.Scale( domain = [0, len( df.index ) ] )
  Y       = alt.Y( aggregate = 'count', type = 'quantitative', scale = Y_scale )
  
  alt.Chart( df ).mark_bar().encode( X, Y ).repeat( list( df.columns ) )
  </code></pre>
  
  <p>which results in two bar charts that look like:</p>
  
  <p><a href="https://i.stack.imgur.com/AopgB.png" rel="nofollow noreferrer">bar charts</a></p>
  
  <p>Note the data for ColA contains no 'e' values, so the bar chart does not contain any tick mark for those values. For the ColA chart, I would like a tick mark for 'e' and for there to be no bar there so both the ColA and ColB charts look the same and can be easily compared.</p>
  
  <p>How can I do that?</p>