You are reading an old version of the documentation (v2.0.1). For the latest version see


This Page


Axes.xcorr(x, y, normed=True, detrend=<function detrend_none>, usevlines=True, maxlags=10, **kwargs)

Plot the cross correlation between x and y.

The correlation with lag k is defined as sum_n x[n+k] * conj(y[n]).


x : sequence of scalars of length n

y : sequence of scalars of length n

hold : boolean, optional, deprecated, default: True

detrend : callable, optional, default: mlab.detrend_none

x is detrended by the detrend callable. Default is no normalization.

normed : boolean, optional, default: True

if True, input vectors are normalised to unit length.

usevlines : boolean, optional, default: True

if True, Axes.vlines is used to plot the vertical lines from the origin to the acorr. Otherwise, Axes.plot is used.

maxlags : integer, optional, default: 10

number of lags to show. If None, will return all 2 * len(x) - 1 lags.


(lags, c, line, b) : where:

  • lags are a length 2`maxlags+1 lag vector.
  • c is the 2`maxlags+1 auto correlation vectorI
  • line is a Line2D instance returned by plot.
  • b is the x-axis (none, if plot is used).
Other Parameters:

linestyle : Line2D prop, optional, default: None

Only used if usevlines is False.

marker : string, optional, default: ‘o’


The cross correlation is performed with numpy.correlate() with mode = 2.


In addition to the above described arguments, this function can take a data keyword argument. If such a data argument is given, the following arguments are replaced by data[<arg>]:

  • All arguments with the following names: ‘x’, ‘y’.