title: Matplotlib: How do I make my bar plot fill the entire x-axis?
body: <p>I have a bar plot drawn in matplotlib as such:
  <img src="https://i.stack.imgur.com/PK1pa.png" alt="bar plot with issues"></p>
  
  <p>The x-ticks do not span the entire range of x axis. How do I make that happen?</p>
  
  <p>My code is here:</p>
  
  <pre><code>def counter_proportions(counter):
      total = sum(counter.values())
  
      proportions = dict()
      for key, value in counter.items():
          proportions[key] = float(value)/float(total)
  
      return proportions
  
  def categorical_counter_xlabels(counter):
      idxs = dict()
  
      for i, key in enumerate(counter.keys()):
          idxs[key] = i
  
      return idxs
  
  # Use this dummy data
  detailed_hosts = ['Species1' * 3, 'Species2' * 1000, 'Species3' * 20, 'Species4' * 20]
  # Create a detailed version of the counter, which includes the exact species represented.
  detailed_hosts = []
  
  counts = Counter(detailed_hosts)
  props = counter_proportions(counts)
  xpos = categorical_counter_xlabels(counts)
  
  fig = plt.figure(figsize=(16,10))
  ax = fig.add_subplot(111)
  plt.bar(xpos.values(), props.values(), align='center')
  plt.xticks(xpos.values(), xpos.keys(), rotation=90)
  plt.xlabel('Host Species')
  plt.ylabel('Proportion')
  plt.title("Proportion of Reassortant Viruses' Host Species")
  plt.savefig('Proportion of Reassortant Viruses Host Species.pdf', bbox_inches='tight')
  </code></pre>