title: matplotlib/python - How to draw a plot like this? mean ± 3*standard deviation
body: <p>I want a picture like this:
  <a href="https://i.stack.imgur.com/d3ddl.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/d3ddl.jpg" alt="enter image description here"></a></p>
  
  <p>The upper and lower limit of x axis is given and is much larger/smaller than the given data.</p>
  
  <p>All plot I find is only  ± 1*standard deviation.</p>
  
  <p>Also I am not sure how to fix the x axis like this.</p>
  
  <p>My data is a python list of floats.</p>
  
  <p>Right now, I only have three points, but  I would like to have line between them and vertical line at the points.
  The x  axis is also not correct. </p>
  
  <pre><code>plt.figure()
  x = []
  for item in circ_list:
      x.append(float(item))
  mean = np.mean(x)
  std = np.std(x)
  target_upper_bound = mean + 3 * std
  target_lower_bound = mean - 3 * std
  
  total_intermid = wear_limit[1] - wear_limit[0]
  ten_percent_intermid = total_intermid / 10.0
  plt.gca().axes.get_yaxis().set_visible(False)
  plt.xlim([wear_limit[0],  wear_limit[1]])
  
  plt.plot(x, np.zeros_like(x), 'x')
  plt.plot(np.array([mean, mean + 2 * std, mean - 2 * std]),
           np.zeros_like(np.array([mean, mean + 2 * std, mean - 2 * std])), '|')
  
  for i in x:
      plt.annotate(str(i), xy=(i, 0))
  plt.annotate('mean', xy=(mean, 0))
  plt.annotate('mean+3*std', xy=(target_upper_bound, 0))
  plt.annotate('mean-3*std', xy=(target_lower_bound, 0))
  plt.show()
  </code></pre>