Code
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2, t, norm
Code
plt.figure(figsize=(15,10))
x = np.arange(0, 20, 0.001)

for i in range(3, 10):
    plt.plot(x, chi2.pdf(x, df=i), label='df: {}'.format(i))
plt.rc('legend', fontsize=15)
plt.legend(title='Parameters')

plt.ylabel('Density',fontsize=20)
plt.xlabel('x', fontsize=20)
plt.title('Chi-Square Distributions', fontsize=20)
plt.savefig("chi_square_density.pdf")
Code
plt.figure(figsize=(12,8))
x = np.arange(-5, 5, 0.001)

for i in range(1,8):
    plt.plot(x, t.pdf(x, df=i), label='df: {}'.format(i))
    
plt.rc('legend', fontsize=20)
plt.legend(title='Parameters', title_fontsize=15)

plt.ylabel('Density',fontsize=20)
plt.xlabel('x', fontsize=20)
plt.title('Student t-distributions', fontsize=20)
plt.grid(True)
plt.tight_layout()
plt.savefig("t_density.pdf")
Code
plt.figure(figsize=(15,10))
d_f = 2
plt.plot(x, t.pdf(x, df= d_f), label='df: {}'.format(d_f))
plt.plot(x, norm.pdf(x), label='Z')    
plt.legend(title='Parameters')

plt.ylabel('Density')
plt.xlabel('x')
plt.title('Student t-distribution vs Standard Normal', fontsize=14)
Code
plt.figure(figsize=(12,8))
d_f = 100
plt.plot(x, t.pdf(x, df= d_f), label='t-distribution, df: {}'.format(d_f))

plt.plot(x, norm.pdf(x), label='Standard Normal')  

d_f = 2
plt.plot(x, t.pdf(x, df= d_f), label='t-distribution, df: {}'.format(d_f))

plt.rc('legend', fontsize=15)
plt.legend()

plt.ylabel('Density',fontsize=20)
plt.xlabel('x', fontsize=20)
plt.title('Student t-distribution vs Standard Normal', fontsize=20)
plt.grid(True)
plt.tight_layout()
plt.savefig("t_limit_z.pdf")