import numpy as np
import matplotlib.pyplot as plt
N = 5000000
data = np.random.rand(7, N)
s = np.sum(np.cos(data * 2.0 * np.pi), axis = 0) + 1.0
yy, xx = np.histogram(s, bins = 100)
dx = xx[1] - xx[0]
plt.plot(xx[1:] - 0.5 * dx, yy)
plt.fill_betweenx([0, yy.max()], xx[0], 0, color = 'red', alpha = 0.2)
plt.fill_betweenx([0, yy.max()], 0, 5, color = 'blue', alpha = 0.2)
plt.fill_betweenx([0, yy.max()], 5, xx[-1], color = 'green', alpha = 0.2)
n1 = np.sum(yy[xx[:-1] < 0])
n3 = np.sum(yy[xx[:-1] > 5])
n2 = np.sum(yy[np.logical_and(xx[:-1] >= 0, xx[:-1] <= 5)])
N = N * 1.0
plt.text(xx[0], yy.max() * 1.15, r'$n_1$ = %d, $n_2$ = %d, $n_3$ = %d' % (n1, n2, n3))
plt.text(xx[0], yy.max() * 1.1, r'$p_1$ = %4.3f, $p_2$ = %4.3f, $p_3$ = %4.3f' % (n1 / N, n2 / N, n3 / N))
plt.show()