Open In App

Plotting Sine and Cosine Graph using Matplotlib in Python

Last Updated : 25 Aug, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Data visualization and Plotting is an essential skill that allows us to spot trends in data and outliers. With the help of plots, we can easily discover and present useful information about the data. In this article, we are going to plot a sine and cosine graph using Matplotlib in Python. Matplotlib is a Python library for data visualization and plotting, if you don’t have Matplotlib installed on your system, please install it before Plotting Sine and Cosine Graph using Matplotlib. One can install Matplotlib using the below command on the terminal or Jupyter notebook.

pip install matplotlib

Plotting Sine Graph using Matplotlib in Python

Now let’s plot the sine curve using the sine function that is inbuilt into the NumPy library and plot it using Matplotlib.

Step 1: Import the necessary library for plotting.

Python3




#Importing required library
import numpy as np
import matplotlib.pyplot as plt


Step 2: Create a list or load your own data for Plotting Sine Graph.

Python3




# Creating x axis with range and y axis with Sine
# Function for Plotting Sine Graph
x = np.arange(0, 5*np.pi, 0.1)
y = np.sin(x)


Step 3: Plotting Sine Graph with the created list or load data.

Python3




# Plotting Sine Graph
plt.plot(x, y, color='green')
plt.show()


Output:

Sine Curve using Matplotlib

Sine Curve using Matplotlib

Plotting Cosine Graph using Matplotlib in Python

Now let’s plot the cosine curve using the cosine function that is inbuilt into the NumPy library and plot it using Matplotlib.

Python3




# Importing required library
import numpy as np
import matplotlib.pyplot as plt
 
# Creating x axis with range and y axis with Sine
# Function for Plotting Cosine Graph
x = np.arange(0, 5*np.pi, 0.1)
y = np.cos(x)
 
# Plotting coine Graph
plt.plot(x, y, color='green')
plt.show()


Output:

Cosine Curve using Matplotlib

Cosine Curve using Matplotlib

Plotting Both Combined Sine and Cosine Graph

From the above two curves, one must think that both of them seem pretty similar. Let’s look at both of these curves on the same graph then we will be able to detect the difference between the graph of the two curves.

Python3




# Importing required library
import numpy as np
import matplotlib.pyplot as plt
 
# Creating x axis with range and y axis
# Function for Plotting Sine and Cosine Graph
x = np.arange(0, 5*np.pi, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
 
# Plotting Sine Graph
plt.plot(x, y1, color='green')
plt.plot(x, y2, color='darkblue')
plt.show()


Output:

Sine and cosine Curve using Matplotlib

Sine and Cosine Curve using Matplotlib

Plotting different waveforms using Numpy and Matplotlib:

The sine wave, square wave, triangle wave, and sawtooth wave are four different waveforms that are created and displayed. These waveforms are frequently utilized in signal processing, electronics, and several scientific and technical applications.

Code:

Python3




import numpy as np
import matplotlib.pyplot as plt
 
# Define signal parameters
T = 1  # period (seconds)
fs = 1000  # sampling frequency (Hz)
time = np.linspace(0, T, T * fs, endpoint=False)
 
# Generate sine wave
frequency_sine = 5  # frequency (Hz)
sine_wave = np.sin(2 * np.pi * frequency_sine * time)
 
# Generate square wave
frequency_square = 2  # frequency (Hz)
duty_cycle = 0.01  # percentage of the period where the signal is high
square_wave = np.where(
    np.mod(np.floor(2 * duty_cycle * fs * time), 2) == 0, 1, -1)
 
# Generate triangle wave
frequency_triangle = 1  # frequency (Hz)
triangle_wave = 2 * np.abs((10 * frequency_triangle * time) % 2 - 1) - 1
 
# Generate sawtooth wave
frequency_sawtooth = 10  # frequency (Hz)
sawtooth_wave = 2 * (frequency_sawtooth * time -
                     np.floor(frequency_sawtooth * time + 0.5))
 
# Plot the waves
fig, axs = plt.subplots(4, 1, sharex=True, figsize=(8, 8))
axs[0].plot(time, sine_wave)
axs[0].set_title('Sine Wave')
axs[1].plot(time, square_wave)
axs[1].set_title('Square Wave')
axs[2].plot(time, triangle_wave)
axs[2].set_title('Triangle Wave')
axs[3].plot(time, sawtooth_wave)
axs[3].set_title('Sawtooth Wave')
plt.xlabel('Time (s)')
plt.show()


Output:

gfg-graph-resized



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads