n = 50
outcomes = np.zeros(6)
pureprobs = np.array([2,1,1,1,1,1])
pureprobs = pureprobs / np.sum(pureprobs)
for i in range(n):
# roll a 7-sided die
dieroll = np.random.randint(0,7)
if dieroll==6:
dieroll = 0
outcomes[dieroll] += 1
outcomes
plt.bar(range(1,7),outcomes/n,color='k',label='Empirical (proportion)')
plt.plot(range(1,7),pureprobs,'ms-',markersize=10,label='Theoretical (probability)')
plt.xlabel('Die face')
plt.ylabel('Probability or proportion')
plt.legend()
for i in range(1,7):
plt.text(i,outcomes[i-1]/n-.025,'%s%%' %int(100*outcomes[i-1]/n) \
, color='w',fontsize=12,horizontalalignment='center')
plt.show()