---
title: Visualizing Statistical Distributions with Python
date: 2024-11-27T08:31:51Z
modified: 2026-06-22T16:17:39Z
permalink: "https://www.micheledpierri.com/2024/11/27/visualizing-statistical-distributions-with-python/"
type: post
status: publish
excerpt: ""
wpid: 927
categories:
  - Programming
tags:
  - Programming
  - Data Visualization
  - Matplotlib
  - Python
featured_image: "https://www.micheledpierri.com/wp-content/uploads/2024/11/draw_curves_.png"
featured_image_alt: A barefoot child crouches in a warm, painterly old stone alley, drawing a large bird with white chalk amid cracked ochre walls, wooden chairs, arched doorways, and rising steps.
timestamp: 2026-06-22T16:17:39Z
---

This post illustrates techniques for visualizing statistical distributions using Python and its graphics libraries, particularly [Matplotlib](https://www.micheledpierri.com/wp-content/uploads/wp-mfa-exports/post/matplotlib-1.md). The resulting charts are used in the [statistical distribution](https://www.micheledpierri.com/elements-of-statistics-for-doctors/statistical-distributions/)s lesson of the [statistics course](https://www.micheledpierri.com/wp-content/uploads/wp-mfa-exports/page/statistics.md).

# Required Libraries Import

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm, binom, poisson, expon, uniform, bernoulli, chi2, t
```
<span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> numpy </span><span style="color: #FF79C6">as</span><span style="color: #F8F8F2"> np</span></span>
<span class="line"><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> matplotlib.pyplot </span><span style="color: #FF79C6">as</span><span style="color: #F8F8F2"> plt</span></span>
<span class="line"><span style="color: #FF79C6">from</span><span style="color: #F8F8F2"> scipy.stats </span><span style="color: #FF79C6">import</span><span style="color: #F8F8F2"> norm, binom, poisson, expon, uniform, bernoulli, chi2, t</span></span>
<span class="line"></span>
```

## Normal distribution

# Normal Distribution
mu = 0  # Mean
sigma = 1  # Standard deviation
x = np.linspace(-5, 5, 1000)
plt.plot(x, norm.pdf(x, mu, sigma), label='Normal Distribution')
plt.title('Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend()
plt.show()
```
<span class="line"><span style="color: #6272A4"># Normal Distribution</span></span>
<span class="line"><span style="color: #F8F8F2">mu </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Mean</span></span>
<span class="line"><span style="color: #F8F8F2">sigma </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Standard deviation</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x, norm.pdf(x, mu, sigma), </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Normal Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Normal Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Value</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Density</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Exponential distribution

# Exponential Distribution
lam = 1  # Decay rate
x = np.linspace(0, 5, 1000)
plt.plot(x, expon.pdf(x, scale=1/lam), label='Exponential Distribution')
plt.title('Exponential Distribution')
plt.xlabel('Time')
plt.ylabel('Probability Density')
plt.legend()
plt.show()
```
<span class="line"><span style="color: #6272A4"># Exponential Distribution</span></span>
<span class="line"><span style="color: #F8F8F2">lam </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Decay rate</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x, expon.pdf(x, </span><span style="color: #FFB86C; font-style: italic">scale</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">1</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">lam), </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Exponential Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Exponential Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Time</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Density</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Bernoulli distribution


# Parameter of the Bernoulli distribution
p = 0.4  # Probability of success (1)

# Possible values of the Bernoulli random variable
x = [0, 1]

# Calculation of probability mass function
pmf_values = bernoulli.pmf(x, p)

# Creating the plot
bar_width = 0.3
x_pos = np.array([0, 0.6])  # Adjust these values to change the spacing
plt.bar(x_pos, pmf_values, width=bar_width, color='blue', alpha=0.7, label='Bernoulli Distribution')

# Setting labels and title
plt.title(f'Bernoulli Distribution (p = {p:.2f})')
plt.xlabel('Value')
plt.ylabel('Probability Mass')
plt.xticks(x_pos, ['0', '1'])  # Set x-ticks at bar positions
plt.legend()
plt.grid(True, axis='y', linestyle='--', alpha=0.7)  # Adds horizontal grid to improve readability

# Set x-axis limits to focus on the bars
plt.xlim(-0.2, 0.8)
plt.show()
```
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Parameter of the Bernoulli distribution</span></span>
<span class="line"><span style="color: #F8F8F2">p </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0.4</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Probability of success (1)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Possible values of the Bernoulli random variable</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> [</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Calculation of probability mass function</span></span>
<span class="line"><span style="color: #F8F8F2">pmf_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> bernoulli.pmf(x, p)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Creating the plot</span></span>
<span class="line"><span style="color: #F8F8F2">bar_width </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0.3</span></span>
<span class="line"><span style="color: #F8F8F2">x_pos </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.array([</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">0.6</span><span style="color: #F8F8F2">])  </span><span style="color: #6272A4"># Adjust these values to change the spacing</span></span>
<span class="line"><span style="color: #F8F8F2">plt.bar(x_pos, pmf_values, </span><span style="color: #FFB86C; font-style: italic">width</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bar_width, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Bernoulli Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Setting labels and title</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #FF79C6">f</span><span style="color: #F1FA8C">'Bernoulli Distribution (p = </span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">p</span><span style="color: #FF79C6">:.2f</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">)'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Value</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Mass</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xticks(x_pos, [</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">0</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">1</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">])  </span><span style="color: #6272A4"># Set x-ticks at bar positions</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">axis</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">y</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">)  </span><span style="color: #6272A4"># Adds horizontal grid to improve readability</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set x-axis limits to focus on the bars</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlim(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">0.2</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">0.8</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Binomial distribution

# Binomial Distribution
n = 4  # Number of trials
p = 0.5  # Probability of success
x = np.arange(0, n+1)

# Calculate PMF
pmf_values = binom.pmf(x, n, p)

# Create the plot
bar_width = 0.8
plt.bar(x, pmf_values, width=bar_width, color='blue', alpha=0.7, label='Binomial Distribution')

# Set labels and title
plt.title(f'Binomial Distribution (n={n}, p={p})')
plt.xlabel('Number of Successes')
plt.ylabel('Probability')

# Set x-ticks to integers
plt.xticks(x)

# Add legend and grid
plt.legend()
plt.grid(True, axis='y', linestyle='--', alpha=0.7)

# Adjust x-axis limits for better appearance
plt.xlim(-0.5, n+0.5)
plt.show()
```
<span class="line"><span style="color: #6272A4"># Binomial Distribution</span></span>
<span class="line"><span style="color: #F8F8F2">n </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Number of trials</span></span>
<span class="line"><span style="color: #F8F8F2">p </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Probability of success</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.arange(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, n</span><span style="color: #FF79C6">+</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Calculate PMF</span></span>
<span class="line"><span style="color: #F8F8F2">pmf_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> binom.pmf(x, n, p)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Create the plot</span></span>
<span class="line"><span style="color: #F8F8F2">bar_width </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0.8</span></span>
<span class="line"><span style="color: #F8F8F2">plt.bar(x, pmf_values, </span><span style="color: #FFB86C; font-style: italic">width</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bar_width, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Binomial Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set labels and title</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #FF79C6">f</span><span style="color: #F1FA8C">'Binomial Distribution (n=</span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">n</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">, p=</span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">p</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">)'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Number of Successes</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set x-ticks to integers</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xticks(x)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Add legend and grid</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">axis</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">y</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Adjust x-axis limits for better appearance</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlim(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">, n</span><span style="color: #FF79C6">+</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Poisson distribution

# Poisson Distribution
lam = 5  # Rate or mean number of events
x = np.arange(0, 20)

# Calculate PMF
pmf_values = poisson.pmf(x, lam)

# Create the plot
bar_width = 0.8
plt.bar(x, pmf_values, width=bar_width, color='blue', alpha=0.7, label='Poisson Distribution')

# Set labels and title
plt.title(f'Poisson Distribution (λ = {lam})')
plt.xlabel('Number of Events')
plt.ylabel('Probability')

# Set x-ticks
plt.xticks(np.arange(0, 20, 2))  # Set x-ticks every 2 units for better readability

# Add legend and grid
plt.legend()
plt.grid(True, axis='y', linestyle='--', alpha=0.7)

# Adjust x-axis limits for better appearance
plt.xlim(-0.5, 19.5)
plt.show()
```
<span class="line"><span style="color: #6272A4"># Poisson Distribution</span></span>
<span class="line"><span style="color: #F8F8F2">lam </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Rate or mean number of events</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.arange(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">20</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Calculate PMF</span></span>
<span class="line"><span style="color: #F8F8F2">pmf_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> poisson.pmf(x, lam)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Create the plot</span></span>
<span class="line"><span style="color: #F8F8F2">bar_width </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0.8</span></span>
<span class="line"><span style="color: #F8F8F2">plt.bar(x, pmf_values, </span><span style="color: #FFB86C; font-style: italic">width</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bar_width, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Poisson Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set labels and title</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #FF79C6">f</span><span style="color: #F1FA8C">'Poisson Distribution (λ = </span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">lam</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">)'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Number of Events</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set x-ticks</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xticks(np.arange(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">20</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">2</span><span style="color: #F8F8F2">))  </span><span style="color: #6272A4"># Set x-ticks every 2 units for better readability</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Add legend and grid</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">axis</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">y</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Adjust x-axis limits for better appearance</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlim(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">19.5</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Uniform distribution

# Uniform Distribution
a = 0  # Lower bound
b = 10  # Upper bound

# Generate x values
x = np.linspace(a-1, b+1, 1000)

# Calculate PDF
pdf_values = uniform.pdf(x, loc=a, scale=b-a)

# Create the plot
plt.figure(figsize=(10, 6))
plt.plot(x, pdf_values, color='blue', linewidth=2, label='Uniform Distribution')

# Fill the area under the curve within the bounds
plt.fill_between(x, pdf_values, where=((x >= a) & (x <= b)), color='blue', alpha=0.3)

# Set labels and title
plt.title(f'Uniform Distribution (a={a}, b={b})')
plt.xlabel('Value')
plt.ylabel('Probability Density')

# Add legend and grid
plt.legend()
plt.grid(True, linestyle='--', alpha=0.7)

# Set axis limits
plt.xlim(a-1, b+1)
plt.ylim(0, uniform.pdf(a, loc=a, scale=b-a) * 1.1)

# Add vertical lines at bounds
plt.axvline(x=a, color='gray', linestyle='--')
plt.axvline(x=b, color='gray', linestyle='--')
plt.show()
```
<span class="line"><span style="color: #6272A4"># Uniform Distribution</span></span>
<span class="line"><span style="color: #F8F8F2">a </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Lower bound</span></span>
<span class="line"><span style="color: #F8F8F2">b </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">  </span><span style="color: #6272A4"># Upper bound</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Generate x values</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(a</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">, b</span><span style="color: #FF79C6">+</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Calculate PDF</span></span>
<span class="line"><span style="color: #F8F8F2">pdf_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> uniform.pdf(x, </span><span style="color: #FFB86C; font-style: italic">loc</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">a, </span><span style="color: #FFB86C; font-style: italic">scale</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">b</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">a)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Create the plot</span></span>
<span class="line"><span style="color: #F8F8F2">plt.figure(</span><span style="color: #FFB86C; font-style: italic">figsize</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">(</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">6</span><span style="color: #F8F8F2">))</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x, pdf_values, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linewidth</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">2</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Uniform Distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Fill the area under the curve within the bounds</span></span>
<span class="line"><span style="color: #F8F8F2">plt.fill_between(x, pdf_values, </span><span style="color: #FFB86C; font-style: italic">where</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">((x </span><span style="color: #FF79C6">>=</span><span style="color: #F8F8F2"> a) </span><span style="color: #FF79C6">&</span><span style="color: #F8F8F2"> (x </span><span style="color: #FF79C6"><=</span><span style="color: #F8F8F2"> b)), </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.3</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set labels and title</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #FF79C6">f</span><span style="color: #F1FA8C">'Uniform Distribution (a=</span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">a</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">, b=</span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">b</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">)'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Value</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Density</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Add legend and grid</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">alpha</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.7</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set axis limits</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlim(a</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">, b</span><span style="color: #FF79C6">+</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylim(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, uniform.pdf(a, </span><span style="color: #FFB86C; font-style: italic">loc</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">a, </span><span style="color: #FFB86C; font-style: italic">scale</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">b</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">a) </span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1.1</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Add vertical lines at bounds</span></span>
<span class="line"><span style="color: #F8F8F2">plt.axvline(</span><span style="color: #FFB86C; font-style: italic">x</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">a, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">gray</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.axvline(</span><span style="color: #FFB86C; font-style: italic">x</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">b, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">gray</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">linestyle</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">--</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```

## Chi square distribution


# Set range for degrees of freedom
degrees_of_freedom = range(1, 11)

# Create a range of x values for plotting
x = np.linspace(0, 20, 1000)

# Plot chi-squared distributions for each degree of freedom
plt.figure(figsize=(10, 6))
for k in degrees_of_freedom:
    plt.plot(x, chi2.pdf(x, k), label=f'df = {k}')

plt.title('Chi-Squared Distributions for Degrees of Freedom from 1 to 10')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend(title='Degrees of Freedom')
plt.grid(True)
plt.show()

```
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set range for degrees of freedom</span></span>
<span class="line"><span style="color: #F8F8F2">degrees_of_freedom </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> </span><span style="color: #8BE9FD">range</span><span style="color: #F8F8F2">(</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">11</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Create a range of x values for plotting</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">20</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Plot chi-squared distributions for each degree of freedom</span></span>
<span class="line"><span style="color: #F8F8F2">plt.figure(</span><span style="color: #FFB86C; font-style: italic">figsize</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">(</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">6</span><span style="color: #F8F8F2">))</span></span>
<span class="line"><span style="color: #FF79C6">for</span><span style="color: #F8F8F2"> k </span><span style="color: #FF79C6">in</span><span style="color: #F8F8F2"> degrees_of_freedom:</span></span>
<span class="line"><span style="color: #F8F8F2">    plt.plot(x, chi2.pdf(x, k), </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #FF79C6">f</span><span style="color: #F1FA8C">'df = </span><span style="color: #BD93F9">{</span><span style="color: #F8F8F2">k</span><span style="color: #BD93F9">}</span><span style="color: #F1FA8C">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Chi-Squared Distributions for Degrees of Freedom from 1 to 10</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Value</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Density</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend(</span><span style="color: #FFB86C; font-style: italic">title</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Degrees of Freedom</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
<span class="line"></span>
```

## t distribution vs normal distribution

# Set up a range for x values to cover enough area for both distributions
x_range = np.linspace(-5, 5, 1000)

# Compute the probability density functions for a t-distribution with 10 degrees of freedom and a normal distribution
t_distribution = t.pdf(x_range, df=10)
normal_distribution = norm.pdf(x_range)

# Plot both distributions for comparison
plt.figure(figsize=(10, 6))
plt.plot(x_range, t_distribution, label='Student\\'s t-distribution, df=10')
plt.plot(x_range, normal_distribution, label='Normal distribution')
plt.title('Comparison of Student\\'s t-Distribution and Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.legend()
plt.grid(True)
plt.show()

```
<span class="line"><span style="color: #6272A4"># Set up a range for x values to cover enough area for both distributions</span></span>
<span class="line"><span style="color: #F8F8F2">x_range </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">5</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Compute the probability density functions for a t-distribution with 10 degrees of freedom and a normal distribution</span></span>
<span class="line"><span style="color: #F8F8F2">t_distribution </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> t.pdf(x_range, </span><span style="color: #FFB86C; font-style: italic">df</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">normal_distribution </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> norm.pdf(x_range)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Plot both distributions for comparison</span></span>
<span class="line"><span style="color: #F8F8F2">plt.figure(</span><span style="color: #FFB86C; font-style: italic">figsize</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">(</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">6</span><span style="color: #F8F8F2">))</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x_range, t_distribution, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Student</span><span style="color: #FF79C6">\\</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">s t</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">distribution, </span><span style="color: #FFB86C; font-style: italic">df</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">10</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x_range, normal_distribution, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Normal distribution</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Comparison of Student</span><span style="color: #FF79C6">\\</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">s t</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">Distribution </span><span style="color: #FF79C6">and</span><span style="color: #F8F8F2"> Normal Distribution</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Value</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Probability Density</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.legend()</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
<span class="line"></span>
```

## Sigmoid function

# Define the sigmoid function
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# Set up a range for x values to display the sigmoid curve
x_values = np.linspace(-10, 10, 400)

# Compute the sigmoid function for these x values
sigmoid_values = sigmoid(x_values)

# Plot the sigmoid function
plt.figure(figsize=(10, 6))
plt.plot(x_values, sigmoid_values, label='Sigmoid Function', color='blue')
plt.title('Sigmoid Function')
plt.xlabel('x')
plt.ylabel('S(x)')
plt.grid(True)
plt.ylim(-0.1, 1.1)  # Extend y-axis to show the asymptotic behavior clearly
plt.axhline(y=0, color='black',linewidth=0.5)
plt.axhline(y=1, color='black',linewidth=0.5)
plt.axvline(x=0, color='black',linewidth=0.5)
plt.show()
```
<span class="line"><span style="color: #6272A4"># Define the sigmoid function</span></span>
<span class="line"><span style="color: #FF79C6">def</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">sigmoid</span><span style="color: #F8F8F2">(</span><span style="color: #FFB86C; font-style: italic">x</span><span style="color: #F8F8F2">):</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">return</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2"> (</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">+</span><span style="color: #F8F8F2"> np.exp(</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">x))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Set up a range for x values to display the sigmoid curve</span></span>
<span class="line"><span style="color: #F8F8F2">x_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> np.linspace(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">400</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Compute the sigmoid function for these x values</span></span>
<span class="line"><span style="color: #F8F8F2">sigmoid_values </span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2"> sigmoid(x_values)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Plot the sigmoid function</span></span>
<span class="line"><span style="color: #F8F8F2">plt.figure(</span><span style="color: #FFB86C; font-style: italic">figsize</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">(</span><span style="color: #BD93F9">10</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">6</span><span style="color: #F8F8F2">))</span></span>
<span class="line"><span style="color: #F8F8F2">plt.plot(x_values, sigmoid_values, </span><span style="color: #FFB86C; font-style: italic">label</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Sigmoid Function</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">blue</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.title(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">Sigmoid Function</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.xlabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">x</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylabel(</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">S(x)</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.grid(</span><span style="color: #BD93F9">True</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.ylim(</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">0.1</span><span style="color: #F8F8F2">, </span><span style="color: #BD93F9">1.1</span><span style="color: #F8F8F2">)  </span><span style="color: #6272A4"># Extend y-axis to show the asymptotic behavior clearly</span></span>
<span class="line"><span style="color: #F8F8F2">plt.axhline(</span><span style="color: #FFB86C; font-style: italic">y</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">black</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">,</span><span style="color: #FFB86C; font-style: italic">linewidth</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.axhline(</span><span style="color: #FFB86C; font-style: italic">y</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">black</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">,</span><span style="color: #FFB86C; font-style: italic">linewidth</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.axvline(</span><span style="color: #FFB86C; font-style: italic">x</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">, </span><span style="color: #FFB86C; font-style: italic">color</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">'</span><span style="color: #F1FA8C">black</span><span style="color: #E9F284">'</span><span style="color: #F8F8F2">,</span><span style="color: #FFB86C; font-style: italic">linewidth</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">0.5</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">plt.show()</span></span>
<span class="line"></span>
```