Using the connectivity classes

Compute different connectivity measures and then demonstrate the utility of the class.

Here we compute the Phase Lag Index (PLI) between all gradiometers and showcase how we can interact with the connectivity class.

# Authors: Adam Li <adam2392@gmail.com>
#
# License: BSD (3-clause)

import numpy as np

import mne
from mne_connectivity import spectral_connectivity
from mne.datasets import sample

Set parameters

data_path = sample.data_path()
raw_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw.fif'
event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'

# Setup for reading the raw data
raw = mne.io.read_raw_fif(raw_fname)
events = mne.read_events(event_fname)

# Add a bad channel
raw.info['bads'] += ['MEG 2443']

# Pick MEG gradiometers
picks = mne.pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=True,
                       exclude='bads')

# Create epochs for the visual condition
event_id, tmin, tmax = 3, -0.2, 1.5  # need a long enough epoch for 5 cycles
epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks,
                    baseline=(None, 0), reject=dict(grad=4000e-13, eog=150e-6))

# Compute connectivity for the alpha band that contains the evoked response
# (4-9 Hz). We exclude the baseline period:
fmin, fmax = 4., 9.
cwt_freqs = np.linspace(fmin, fmax, 20)
sfreq = raw.info['sfreq']  # the sampling frequency
tmin = 0.0  # exclude the baseline period
epochs.load_data().pick_types(meg='grad')  # just keep MEG and no EOG now
con = spectral_connectivity(
    epochs, method='pli', mode='cwt_morlet', sfreq=sfreq, fmin=fmin, fmax=fmax,
    faverage=False, tmin=tmin, cwt_freqs=cwt_freqs, mt_adaptive=False,
    n_jobs=1)

Out:

Opening raw data file /home/circleci/mne_data/MNE-sample-data/MEG/sample/sample_audvis_filt-0-40_raw.fif...
    Read a total of 4 projection items:
        PCA-v1 (1 x 102)  idle
        PCA-v2 (1 x 102)  idle
        PCA-v3 (1 x 102)  idle
        Average EEG reference (1 x 60)  idle
    Range : 6450 ... 48149 =     42.956 ...   320.665 secs
Ready.
Not setting metadata
Not setting metadata
73 matching events found
Setting baseline interval to [-0.19979521315838786, 0.0] sec
Applying baseline correction (mode: mean)
4 projection items activated
Loading data for 73 events and 256 original time points ...
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
    Rejecting  epoch based on EOG : ['EOG 061']
24 bad epochs dropped
Removing projector <Projection | PCA-v1, active : True, n_channels : 102>
Removing projector <Projection | PCA-v2, active : True, n_channels : 102>
Removing projector <Projection | PCA-v3, active : True, n_channels : 102>
Removing projector <Projection | Average EEG reference, active : True, n_channels : 60>
Connectivity computation...
only using indices for lower-triangular matrix
    computing connectivity for 20503 connections
    using t=0.000s..1.498s for estimation (226 points)
    frequencies: 4.0Hz..9.0Hz (20 points)
    using CWT with Morlet wavelets to estimate spectra
    the following metrics will be computed: PLI
    computing connectivity for epoch 1
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 2
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 3
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 4
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 5
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 6
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 7
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 8
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 9
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 10
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 11
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 12
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 13
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 14
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 15
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 16
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 17
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 18
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 19
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 20
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 21
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 22
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 23
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 24
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 25
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 26
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 27
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 28
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 29
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 30
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 31
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 32
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 33
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 34
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 35
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 36
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 37
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 38
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 39
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 40
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 41
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 42
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 43
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 44
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 45
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 46
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 47
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 48
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    computing connectivity for epoch 49
/home/circleci/project/mne_connectivity/spectral.py:397: UserWarning: At least one of the wavelets (419) is longer than the signal (226). Consider using a longer signal or shorter wavelets.
  this_x_t = cwt(this_data[sig_idx, tmin_idx:tmax_idx],
    assembling connectivity matrix
[Connectivity computation done]

Now, we can look at different functionalities of the connectivity class returned by mne_connectivity.spectral_connectivity(). The following are some basic attributes of connectivity classes.

# the dimensions of the data corresponding to each axis
print(con.dims)

# the coordinates for each axis of the data
print(con.coords)

# the number of nodes matches the number of electrodes used to compute the
# spectral measure
print(con.n_nodes)

# the names of each node correspond to the electrode names
print(con.names)

Out:

('node_in -> node_out', 'freqs', 'times')
Coordinates:
  * node_in -> node_out  (node_in -> node_out) <U5 '0' '1' ... '41207' '41208'
  * freqs                (freqs) float64 4.0 4.263 4.526 ... 8.474 8.737 9.0
  * times                (times) float64 0.0 0.00666 0.01332 ... 1.492 1.498
203
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '140', '141', '142', '143', '144', '145', '146', '147', '148', '149', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '160', '161', '162', '163', '164', '165', '166', '167', '168', '169', '170', '171', '172', '173', '174', '175', '176', '177', '178', '179', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189', '190', '191', '192', '193', '194', '195', '196', '197', '198', '199', '200', '201', '202']

The underlying connectivity measure can be stored in two ways: i) raveled and ii) dense. Raveled storage will be a 1D column flattened array, similar to what one might expect when using numpy.ravel. However, if you ask for the dense data, then the shape will show the N by N connectivity. In general, you might prefer the raveled version if you specify a subset of indices (e.g. some subset of sources) for the computation of a bivariate connectivity measure or if you have a symmetric measure (e.g. coherence). The ‘dense’ output on the other hand provides an actual square matrix, which can be used for post-hoc analysis that expects a matrix shape.

# the underlying data is stored "raveled", and the connectivity measure is
# flattened into one dimension
print(con.shape)

# the 'dense' output will show the connectivity measure's N x N axis
print(con.get_data(output='dense').shape)

Out:

(41209, 20, 226)
(203, 203, 20, 226)

The underlying data is stored as an xarray, so we have access to DataArray attributes. Each connectivity measure function automatically stores relevant metadata. For example, the method used in this example is the phase-lag index (‘pli’).

print(con.attrs.keys())
print(con.attrs.get('method'))

# You can also store additional metadata relevant to your experiment, which can
# easily be done, because ``attrs`` is just a dictionary.
con.attrs['experimenter'] = 'mne'
print(con.attrs.keys())

Out:

dict_keys(['spec_method', 'n_epochs_used', 'freqs_used', 'times_used', 'n_tapers', 'node_names', 'method', 'indices', 'n_nodes'])
['pli']
dict_keys(['spec_method', 'n_epochs_used', 'freqs_used', 'times_used', 'n_tapers', 'node_names', 'method', 'indices', 'n_nodes', 'experimenter'])

Other properties of the connectivity class, special to the spectro-temporal connectivity class.

Note

Not all connectivity classes will have these properties.

# a frequency axis shows the different frequencies used in estimating
# the spectral measure
print(con.freqs)

# a time axis shows the different time points because the spectral
# measure is time-resolved
print(con.times)

Out:

[4.0, 4.2631578947368425, 4.526315789473684, 4.7894736842105265, 5.052631578947368, 5.315789473684211, 5.578947368421053, 5.842105263157895, 6.105263157894736, 6.368421052631579, 6.631578947368421, 6.894736842105263, 7.157894736842105, 7.421052631578947, 7.684210526315789, 7.947368421052632, 8.210526315789473, 8.473684210526315, 8.736842105263158, 9.0]
[0.0, 0.006659840438612929, 0.013319680877225858, 0.019979521315838786, 0.026639361754451717, 0.03329920219306465, 0.03995904263167757, 0.0466188830702905, 0.05327872350890343, 0.05993856394751636, 0.0665984043861293, 0.07325824482474222, 0.07991808526335514, 0.08657792570196808, 0.093237766140581, 0.09989760657919393, 0.10655744701780687, 0.11321728745641979, 0.11987712789503271, 0.12653696833364564, 0.1331968087722586, 0.13985664921087151, 0.14651648964948444, 0.15317633008809736, 0.1598361705267103, 0.1664960109653232, 0.17315585140393616, 0.17981569184254909, 0.186475532281162, 0.19313537271977493, 0.19979521315838786, 0.20645505359700078, 0.21311489403561373, 0.21977473447422666, 0.22643457491283958, 0.2330944153514525, 0.23975425579006543, 0.24641409622867838, 0.2530739366672913, 0.25973377710590423, 0.2663936175445172, 0.2730534579831301, 0.27971329842174303, 0.2863731388603559, 0.2930329792989689, 0.2996928197375818, 0.3063526601761947, 0.3130125006148077, 0.3196723410534206, 0.3263321814920335, 0.3329920219306464, 0.33965186236925937, 0.3463117028078723, 0.3529715432464852, 0.35963138368509817, 0.36629122412371107, 0.372951064562324, 0.37961090500093697, 0.38627074543954987, 0.3929305858781628, 0.3995904263167757, 0.40625026675538867, 0.41291010719400156, 0.4195699476326145, 0.42622978807122747, 0.43288962850984036, 0.4395494689484533, 0.4462093093870662, 0.45286914982567916, 0.4595289902642921, 0.466188830702905, 0.47284867114151796, 0.47950851158013086, 0.4861683520187438, 0.49282819245735676, 0.49948803289596966, 0.5061478733345826, 0.5128077137731956, 0.5194675542118085, 0.5261273946504214, 0.5327872350890344, 0.5394470755276473, 0.5461069159662602, 0.552766756404873, 0.5594265968434861, 0.566086437282099, 0.5727462777207118, 0.5794061181593249, 0.5860659585979378, 0.5927257990365506, 0.5993856394751635, 0.6060454799137766, 0.6127053203523894, 0.6193651607910023, 0.6260250012296154, 0.6326848416682282, 0.6393446821068411, 0.6460045225454542, 0.652664362984067, 0.6593242034226799, 0.6659840438612928, 0.6726438842999058, 0.6793037247385187, 0.6859635651771316, 0.6926234056157446, 0.6992832460543575, 0.7059430864929704, 0.7126029269315833, 0.7192627673701963, 0.7259226078088092, 0.7325824482474221, 0.7392422886860351, 0.745902129124648, 0.7525619695632609, 0.7592218100018739, 0.7658816504404868, 0.7725414908790997, 0.7792013313177126, 0.7858611717563256, 0.7925210121949385, 0.7991808526335514, 0.8058406930721644, 0.8125005335107773, 0.8191603739493902, 0.8258202143880031, 0.8324800548266161, 0.839139895265229, 0.8457997357038419, 0.8524595761424549, 0.8591194165810678, 0.8657792570196807, 0.8724390974582937, 0.8790989378969066, 0.8857587783355195, 0.8924186187741324, 0.8990784592127454, 0.9057382996513583, 0.9123981400899712, 0.9190579805285842, 0.9257178209671971, 0.93237766140581, 0.939037501844423, 0.9456973422830359, 0.9523571827216488, 0.9590170231602617, 0.9656768635988747, 0.9723367040374876, 0.9789965444761005, 0.9856563849147135, 0.9923162253533264, 0.9989760657919393, 1.0056359062305522, 1.012295746669165, 1.0189555871077782, 1.0256154275463911, 1.032275267985004, 1.038935108423617, 1.0455949488622298, 1.0522547893008427, 1.0589146297394556, 1.0655744701780687, 1.0722343106166816, 1.0788941510552945, 1.0855539914939074, 1.0922138319325203, 1.0988736723711332, 1.105533512809746, 1.1121933532483592, 1.1188531936869721, 1.125513034125585, 1.132172874564198, 1.1388327150028108, 1.1454925554414237, 1.1521523958800366, 1.1588122363186497, 1.1654720767572626, 1.1721319171958755, 1.1787917576344884, 1.1854515980731013, 1.1921114385117142, 1.198771278950327, 1.2054311193889402, 1.212090959827553, 1.218750800266166, 1.225410640704779, 1.2320704811433918, 1.2387303215820047, 1.2453901620206178, 1.2520500024592307, 1.2587098428978436, 1.2653696833364565, 1.2720295237750694, 1.2786893642136823, 1.2853492046522952, 1.2920090450909083, 1.2986688855295212, 1.305328725968134, 1.311988566406747, 1.3186484068453599, 1.3253082472839728, 1.3319680877225857, 1.3386279281611988, 1.3452877685998117, 1.3519476090384246, 1.3586074494770375, 1.3652672899156504, 1.3719271303542633, 1.3785869707928762, 1.3852468112314893, 1.3919066516701022, 1.398566492108715, 1.405226332547328, 1.4118861729859409, 1.4185460134245538, 1.4252058538631667, 1.4318656943017798, 1.4385255347403927, 1.4451853751790056, 1.4518452156176185, 1.4585050560562314, 1.4651648964948443, 1.4718247369334574, 1.4784845773720703, 1.4851444178106832, 1.491804258249296, 1.498464098687909]

Total running time of the script: ( 1 minutes 44.366 seconds)

Gallery generated by Sphinx-Gallery