Autocorrelation plot using Matplotlib - GeeksforGeeks

06 Aug, 2021
Autocorrelation plots are a commonly used tool for checking randomness in a data set. This randomness is ascertained by computing autocorrelations for data values at varying time lags.
Characteristics Of Autocorrelation Plot : 
It measures a set of current values against a set of past values and finds whether they correlate.
It is the correlation of one-time series data to another time series data which has a time lag.
It varies from +1 to -1.
An autocorrelation of +1 indicates that if time series one increases in value the time series 2 also increases in proportion to the change in time series 1.
An autocorrelation of -1 indicates that if time series one increases in value the time series 2 decreases in proportion to the change in time series 1.
Application of Autocorrelation:  
Pattern recognition.
Signal detection.
Signal processing.
Estimating pitch.
Technical analysis of stocks.
To plot the Autocorrelation Plot we can use matplotlib and plot it easily by using matplotlib.pyplot.acorr() function. 
Syntax: matplotlib.pyplot.acorr(x, *, data=None, **kwargs)Parameters: 
‘x’ : This parameter is a sequence of scalar.
‘detrend’ : This parameter is an optional parameter. Its default value is mlab.detrend_none.
‘normed’ : This parameter is also an optional parameter and contains the bool value. Its default value is True.
‘usevlines’ : This parameter is also an optional parameter and contains the bool value. Its default value is True.
‘maxlags’ : This parameter is also an optional parameter and contains the integer value. Its default value is 10.
‘linestyle’ : This parameter is also an optional parameter and used for plotting the data points, only when usevlines is False.
‘marker’ : This parameter is also an optional parameter and contains the string. Its default value is ‘o’.
Returns: (lags, c, line, b) Where:
lags are a length 2`maxlags+1 lag vector.
c is the 2`maxlags+1 auto correlation vector.
line is a Line2D instance returned by plot.
b is the x-axis.
Example 1:  
Python3
# Importing the libraries.import matplotlib.pyplot as pltimport numpy as np   # Data for which we plot Autocorrelation.data = np.array([12.0, 24.0, 7., 20.0,                 7.0, 22.0, 18.0,22.0,                 6.0, 7.0, 20.0, 13.0,                 8.0, 5.0, 8])   # Adding plot title.plt.title("Autocorrelation Plot") # Providing x-axis name.plt.xlabel("Lags") # Plotting the Autocorrelation plot.plt.acorr(data, maxlags = 10) # Displaying the plot.print("The Autocorrelation plot for the data is:")plt.grid(True) plt.show()
Output: 
Example 2: 
Python3
# Importing the libraries.import matplotlib.pyplot as pltimport numpy as np   # Setting up the rondom seed for# fixing the random state.np.random.seed(42)   # Creating some random data.data = np.random.randn(25)   # Adding plot title.plt.title("Autocorrelation Plot") # Providing x-axis name.plt.xlabel("Lags") # Plotting the Autocorrelation plot.plt.acorr(data, maxlags = 20) # Displaying the plot.print("The Autocorrelation plot for the data is:")plt.grid(True) plt.show()
Output: 
 
kk9826225
as5853535
Python-matplotlib
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python
*args and **kwargs in Python
Reading and Writing to text files in Python
Create a Pandas DataFrame from Lists
Convert integer to string in Python