Plot Mathematical Functions – How to Plot Math Functions in Python?

Plot Mathematical Functions Using Python

Hello folks! In this tutorial, we are going to learn how we can plot mathematical functions using Python. So let’s get started.


Prerequisites

For plotting different mathematical functions using Python, we require the following two Python libraries:

1. NumPy

NumPy is a Python library that supports multi-dimensional arrays & matrices and offers a wide range of mathematical functions to operate on the NumPy arrays & matrices. It is one of the most fundamental libraries for scientific computation. We can install NumPy on our local computer using the following command.

> python -m pip install numpy

2. Matplotlib

Matplotlib is a Python library that is widely used for various types of plotting. Using Matplotlib, We can plot static and interactive visualizations very easily. We can install Matplotlib on our local computer using the following command.

> python -m pip install matplotlib

Steps to Plot Mathematical Functions

First import the numpy and matplotlib.pyplot module in the main Python program (.py) or Jupyter Notebook (.ipynb) using the following Python commands.

import numpy as np
import matplotlib.pyplot as plt

For all the plottings, we will follow almost the same steps apart from using the specific NumPy mathematical function in the respective plots.

1. Plot (y = x) Identity function

x = np.arange(0, 11, 1)
y = x
print('Values of x: ', x)
print('Values of y: ', y)
plt.plot(x, y)
plt.title("Identity Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [ 0  1  2  3  4  5  6  7  8  9 10]
Values of y:  [ 0  1  2  3  4  5  6  7  8  9 10]
Identity Function
Identity Function Plot

2. Plot (y = a.x2 + b.x2 + c) Quadratic function

x = np.arange(-11, 11, 1)
a = 2
b = 9
c = 10
y = a*(x**2) + b*x + c 

print('Values of x: ', x)
print('Values of y: ', y)
plt.plot(x, y)
plt.title("Quadratic Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [-11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10]
Values of y:  [153 120  91  66  45  28  15   6   1   0   3  10  21  36  55  78 105 136 171 210 253 300]
Quadratic Function
Quadratic Function Plot

3. Plot (y = a.x3 + b.x2 + c.x + d) Cubic function

x = np.arange(-11, 11, 1)
a = 2
b = 3
c = 4
d = 9
y = a*(x**3) + b*(x**2) + c*x + d 

print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Cubic Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [-11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10]
Values of y:  [-2334 -1731 -1242  -855  -558  -339  -186   -87   -30    -3     6     9    18    45   102   201   354   573   870  1257  1746  2349]
Cubic Function
Cubic Function Plot

4. Plot (y = ln(x) or loge(x)) Natural logarithm function

x = np.arange(1, 11, 0.001)
y = np.log(x)
print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Natural logarithm Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [ 1.     1.001  1.002 ... 10.997 10.998 10.999]
Values of y:  [0.00000000e+00 9.99500333e-04 1.99800266e-03 ... 2.39762251e+00 2.39771344e+00 2.39780436e+00]
Natural Log Function
Natural Logarithm Function Plot

5. Plot (y = log10x) Common/Decimal logarithm function

x = np.arange(1, 11, 0.001)
y = np.log10(x)
print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Common logarithm Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [ 1.     1.001  1.002 ... 10.997 10.998 10.999]
Values of y:  [0.00000000e+00 4.34077479e-04 8.67721531e-04 ... 1.04127423e+00 1.04131372e+00 1.04135320e+00]
Common Log Function
Common Logarithm Function Plot

6. Plot (y = ex) Natural Exponential function

x = np.arange(-11, 11, 0.01)
y = np.exp(x) 
print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Natural exponential Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [-11.   -10.99 -10.98 ...  10.97  10.98  10.99]
Values of y:  [1.67017008e-05 1.68695557e-05 1.70390975e-05 ... 5.81045934e+04 5.86885543e+04 5.92783841e+04]
Natural Exponential Function
Natural Exponential Function Plot

7. Plot (y = ax) General Exponential function

x = np.arange(-11, 11, 0.01)
a = 8
y = a**x 
print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("General exponential Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")
plt.show()

Output:

Values of x:  [-11.   -10.99 -10.98 ...  10.97  10.98  10.99]
Values of y:  [1.16415322e-10 1.18861455e-10 1.21358987e-10 ... 8.07043896e+09 8.24001604e+09 8.41315629e+09]
General Exponential Function
General Exponential Function Plot

8. Plot (y = sign(x)) Signum function

x = np.arange(-11, 11, 0.001)
y = np.sign(x)

print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Signum Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y)")

plt.show()

Output:

Values of x:  [-11.    -10.999 -10.998 ...  10.997  10.998  10.999]
Values of y:  [-1. -1. -1. ...  1.  1.  1.]
Signum Function
Signum Function Plot

9. Plot (y = a.sin(b.x + c)) Sinusoidal function in Python

x = np.arange(-11, 11, 0.001)
a = 5
b = 3
c = 2
y = a*np.sin(b*x + c)

print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Sinusoidal Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")

plt.show()

Output:

Values of x:  [-11.    -10.999 -10.998 ...  10.997  10.998  10.999]
Values of y:  [ 2.02018823  2.03390025  2.04759397 ... -2.10016104 -2.11376421 -2.12734835]
Sinusoidal Function
Sinusoidal Function Plot

10. Plot (y = sinc(x)) Sinc function

x = np.arange(-11, 11, 0.01)
y = np.sinc(x)

print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Sinc function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")

plt.show()

Output:

Values of x:  [-11.   -10.99 -10.98 ...  10.97  10.98  10.99]
Values of y:  [1.41787526e-16 9.09768439e-04 1.82029537e-03 ... 2.73068428e-03
 1.82029537e-03 9.09768439e-04]
Sinc Function
Sinc Function Plot

11. Plot (y = cosh(x)) Hyperbolic function

x = np.arange(-11, 11, 0.001)
y = np.cosh(x) 

print('Values of x: ', x)
print('Values of y: ', y)

plt.plot(x, y)

plt.title("Hyperbolic Function")
plt.xlabel("Values of x")
plt.ylabel("Values of y")

plt.show()

Output:

Values of x:  [-11.    -10.999 -10.998 ...  10.997  10.998  10.999]
Values of y:  [29937.07086595 29907.14875865 29877.2565585  ... 29847.39423524 29877.25655813 29907.14875828]
Hyperbolic Cosin Function
Hyperbolic Cosine Function Plot

Summing-up

In this tutorial, we have learned how to plot different types of mathematical functions using Numpy and Matplotlib libraries. Hope you have understood the plotting process of different mathematical functions and are ready to experiment on your own. Thanks for reading! Stay tuned with us for amazing learning resources on Python programming.