In [1]:
import numpy as np
import matplotlib.pyplot as plt
In [2]:
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()