content: import numpy as np
  import matplotlib.pyplot as plt
  from scipy import stats
  
  
  np.random.seed(12456)
  x1 = np.random.normal(size=200)  # random data, normal distribution
  xs = np.linspace(x1.min()-1, x1.max()+1, 200)
  
  kde1 = stats.gaussian_kde(x1)
  kde2 = stats.gaussian_kde(x1, bw_method='silverman')
  
  fig = plt.figure(figsize=(8, 6))
  
  ax1 = fig.add_subplot(211)
  ax1.plot(x1, np.zeros(x1.shape), 'b+', ms=12)  # rug plot
  ax1.plot(xs, kde1(xs), 'k-', label="Scott's Rule")
  ax1.plot(xs, kde2(xs), 'b-', label="Silverman's Rule")
  ax1.plot(xs, stats.norm.pdf(xs), 'r--', label="True PDF")
  
  ax1.set_xlabel('x')
  ax1.set_ylabel('Density')
  ax1.set_title("Normal (top) and Student's T$_{df=5}$ (bottom) distributions")
  ax1.legend(loc=1)
  
  x2 = stats.t.rvs(5, size=200)  # random data, T distribution
  xs = np.linspace(x2.min() - 1, x2.max() + 1, 200)
  
  kde3 = stats.gaussian_kde(x2)
  kde4 = stats.gaussian_kde(x2, bw_method='silverman')
  
  ax2 = fig.add_subplot(212)
  ax2.plot(x2, np.zeros(x2.shape), 'b+', ms=12)  # rug plot
  ax2.plot(xs, kde3(xs), 'k-', label="Scott's Rule")
  ax2.plot(xs, kde4(xs), 'b-', label="Silverman's Rule")
  ax2.plot(xs, stats.t.pdf(xs, 5), 'r--', label="True PDF")
  
  ax2.set_xlabel('x')
  ax2.set_ylabel('Density')
  
  plt.show()
  