Home Â» How to Plot a Chi-Square Distribution in Python

# How to Plot a Chi-Square Distribution in Python

To plot a Chi-Square distribution in Python, you can use the following syntax:

#x-axis ranges from 0 to 20 with .001 steps
x = np.arange(0, 20, 0.001)

#plot Chi-square distribution with 4 degrees of freedom
plt.plot(x, chi2.pdf(x, df=4))

The x array defines the range for the x-axis and the plt.plot() produces the curve for the Chi-square distribution with the specified degrees of freedom.

The following examples show how to use these functions in practice.

### Example 1: Plot a Single Chi-Square Distribution

The following code shows how to plot a single Chi-square distribution curve with 4 degrees of freedom

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2

#x-axis ranges from 0 to 20 with .001 steps
x = np.arange(0, 20, 0.001)

#plot Chi-square distribution with 4 degrees of freedom
plt.plot(x, chi2.pdf(x, df=4))

You can also modify the color and the width of the line in the graph:

plt.plot(x, chi2.pdf(x, df=4), color='red', linewidth=3)

### Example 2: Plot Multiple Chi-Square Distributions

The following code shows how to plot multiple Chi-square distribution curves with different degrees of freedom:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2

#x-axis ranges from 0 to 20 with .001 steps
x = np.arange(0, 20, 0.001)

#define multiple Chi-square distributions
plt.plot(x, chi2.pdf(x, df=4), label='df: 4')
plt.plot(x, chi2.pdf(x, df=8), label='df: 8')
plt.plot(x, chi2.pdf(x, df=12), label='df: 12')

#add legend to plot
plt.legend()

Feel free to modify the colors of the lines and add a title and axes labels to make the chart complete:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2

#x-axis ranges from 0 to 20 with .001 steps
x = np.arange(0, 20, 0.001)

#define multiple Chi-square distributions
plt.plot(x, chi2.pdf(x, df=4), label='df: 4', color='gold')
plt.plot(x, chi2.pdf(x, df=8), label='df: 8', color='red')
plt.plot(x, chi2.pdf(x, df=12), label='df: 12', color='pink')

#add legend to plot
plt.legend(title='Parameters')

#add axes labels and a title
plt.ylabel('Density')
plt.xlabel('x')
plt.title('Chi-Square Distributions', fontsize=14)

Refer to the matplotlib documentation for an in-depth explanation of the plt.plot() function.