Topology in neuroscience
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12902 lines
6.7 MiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"stim_data.pkl\n",
"dict_keys(['stim_val', 'trial_stim_id', 'key_list', 'num_trial', 'trial_pair_id', 'pair_val', 'pair_trial_id', 'stim_id_trial', 'num_stim'])\n",
"spike_data.pkl\n",
"dict_keys(['spike_count_rate', 'avg_firing_rate', 'sem_firing_rate', 'firing_rate', 'stim_num_trial', 'C_r_fphi_theta', 'theta_hist', 'phase_hist', 'pair_hist'])\n",
"corr_data.pkl\n",
"dict_keys(['corr_stim_unit', 'optimal_avg_firing_rate', 'stim_hist', 'stim_hist_caution'])\n"
]
}
],
"source": [
"# load data 1\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import scipy.stats as sts\n",
"import pickle\n",
"import ipywidgets as widgets\n",
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from scipy import sparse\n",
"from matplotlib import cm\n",
"import cmocean\n",
"\n",
"cmap_phase = cmocean.cm.phase\n",
"cmap_hot = cm.get_cmap('hot')\n",
"cmap_viridis = cm.get_cmap('viridis')\n",
"\n",
"execfile('Stimulus.py')\n",
"data_folder = \"Data/\"\n",
"\n",
"stim_file = \"Stiminfo_PVCre_2021_0012_s06_e14.csv\"\n",
"stim = pd.read_csv(data_folder+stim_file)\n",
"\n",
"spike_times_file = \"Spiketimes_PVCre_2021_0012_s06_e14.npy\"\n",
"spike_times = np.load(data_folder+spike_times_file, allow_pickle=True)\n",
"active = [len(spike_times[i]) > 0 for i in range(len(spike_times))]\n",
"spike_times = spike_times[np.where(active)]\n",
"\n",
"num_unit = len(spike_times)\n",
"num_trial = len(stim)\n",
"\n",
"# sort by firing rate\n",
"\n",
"num_spike = list(map(len, spike_times))\n",
"# num_spike = np.array([len(spike_times[i]) for i in range(len(spike_times))])\n",
"spike_times = spike_times[np.argsort(num_spike)[::-1]]\n",
"execfile('load.py')\n",
"\n",
"max_delay = 300 # dt\n",
"tau_id_range = np.arange(max_delay)\n",
"\n",
"latest_spike_time = max([np.max(s) for s in spike_times if len(s)])\n",
"latest_stim_offtime = list(stim['stim_offtime'])[-1]\n",
"experiment_dur = max([latest_spike_time, latest_stim_offtime])\n",
"\n",
"dt = 0.001 # 1 ms\n",
"exp_time = np.arange(0, experiment_dur, dt)\n",
"M = len(exp_time)\n",
"\n",
"# binary spike and stimulus trains\n",
"B_stim = {}\n",
"for key in key_list:\n",
" B_stim[key] = []\n",
" for stim_id, trials in enumerate(stim_id_trial[key]):\n",
" B_stim[key].append([])\n",
" s = []\n",
" for trial_id in trials:\n",
" t_on, t_off = stim['stim_ontime'][trial_id], stim['stim_offtime'][trial_id]\n",
" s += list(np.arange(int(t_on//dt), int(t_off//dt)))\n",
"\n",
" B_stim[key][stim_id] = sparse.coo_matrix((np.ones(len(s)), (np.zeros(len(s), dtype=int), s)), shape=(1, M))\n",
"s = spike_times//dt\n",
"B_spike = []\n",
"for unit_id in range(num_unit):\n",
" B_spike.append(sparse.coo_matrix((np.ones(len(s[unit_id])), (np.zeros(len(s[unit_id]), dtype=int), np.int0(s[unit_id]))), shape=(1, M)))\n",
"\n",
"# histogram error bars: num spikes\n",
"s = np.zeros((num_unit, 2))\n",
"for unit_id in range(num_unit):\n",
" # print(\"unit: %d\"%unit_id)\n",
" a = np.zeros(len(tau_id_range))\n",
" for tau_id in tau_id_range:\n",
" a[tau_id] = np.sum(B_spike[unit_id].col >= tau_id)\n",
" \n",
" s[unit_id] = [np.mean(a), np.std(a)]\n",
"\n",
"key_symbol = {'pair':'$(\\\\theta,\\phi)$', 'orientation':'$\\\\theta$', 'phase':'$\\phi$'}\n",
"\n",
"# 2D tuning\n",
"avg_firing_rate_pair = np.array([sts.zscore(stim_hist['pair'][unit_id]).reshape((len(tau_id_range), num_stim['orientation'], num_stim['phase'])) for unit_id in range(num_unit)])\n",
"\n",
"sorted_spike_num = np.sort(num_spike)[::-1]\n",
"cutoff_num_spike = 1000\n",
"num_unit = np.sum(sorted_spike_num > cutoff_num_spike)\n",
"for key in key_list:\n",
" stim_hist[key] = stim_hist[key][:num_unit]\n",
"\n",
"opt_time = np.load('optimal_time.npy')\n",
"stim_val_pair = pd.DataFrame(stim_val['pair'], columns=['orientation', 'phase'])"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"stim_data.pkl\n",
"dict_keys(['stim_val', 'trial_stim_id', 'key_list', 'num_trial', 'trial_pair_id', 'pair_val', 'pair_trial_id', 'stim_id_trial', 'num_stim'])\n",
"spike_data.pkl\n",
"dict_keys(['spike_count_rate', 'avg_firing_rate', 'sem_firing_rate', 'firing_rate', 'stim_num_trial', 'C_r_fphi_theta', 'theta_hist', 'phase_hist', 'pair_hist'])\n",
"corr_data.pkl\n",
"dict_keys(['corr_stim_unit', 'optimal_avg_firing_rate', 'stim_hist', 'stim_hist_caution'])\n"
]
}
],
"source": [
"# load data 0\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import scipy.stats as sts\n",
"import pickle\n",
"import ipywidgets as widgets\n",
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from scipy import sparse\n",
"from matplotlib import cm\n",
"\n",
"cmap_hot = cm.get_cmap('hot')\n",
"cmap_viridis = cm.get_cmap('viridis')\n",
"\n",
"execfile('Stimulus.py')\n",
"data_folder = \"Data/\"\n",
"\n",
"stim_file = \"Stiminfo_PVCre_2021_0012_s06_e14.csv\"\n",
"stim = pd.read_csv(data_folder+stim_file)\n",
"\n",
"spike_times_file = \"Spiketimes_PVCre_2021_0012_s06_e14.npy\"\n",
"spike_times = np.load(data_folder+spike_times_file, allow_pickle=True)\n",
"active = [len(spike_times[i]) > 0 for i in range(len(spike_times))]\n",
"spike_times = spike_times[np.where(active)]\n",
"\n",
"num_unit = len(spike_times)\n",
"num_trial = len(stim)\n",
"\n",
"# sort by firing rate\n",
"\n",
"num_spike = list(map(len, spike_times))\n",
"# num_spike = np.array([len(spike_times[i]) for i in range(len(spike_times))])\n",
"spike_times = spike_times[np.argsort(num_spike)[::-1]]\n",
"execfile('load.py')\n",
"\n",
"max_delay = 300 # dt\n",
"tau_id_range = np.arange(max_delay)\n",
"\n",
"latest_spike_time = max([np.max(s) for s in spike_times if len(s)])\n",
"latest_stim_offtime = list(stim['stim_offtime'])[-1]\n",
"experiment_dur = max([latest_spike_time, latest_stim_offtime])\n",
"\n",
"dt = 0.001 # 1 ms\n",
"exp_time = np.arange(0, experiment_dur, dt)\n",
"M = len(exp_time)\n",
"\n",
"# binary spike and stimulus trains\n",
"B_stim = {}\n",
"for key in key_list:\n",
" B_stim[key] = []\n",
" for stim_id, trials in enumerate(stim_id_trial[key]):\n",
" B_stim[key].append([])\n",
" s = []\n",
" for trial_id in trials:\n",
" t_on, t_off = stim['stim_ontime'][trial_id], stim['stim_offtime'][trial_id]\n",
" s += list(np.arange(int(t_on//dt), int(t_off//dt)))\n",
"\n",
" B_stim[key][stim_id] = sparse.coo_matrix((np.ones(len(s)), (np.zeros(len(s), dtype=int), s)), shape=(1, M))\n",
"s = spike_times//dt\n",
"B_spike = []\n",
"for unit_id in range(num_unit):\n",
" B_spike.append(sparse.coo_matrix((np.ones(len(s[unit_id])), (np.zeros(len(s[unit_id]), dtype=int), np.int0(s[unit_id]))), shape=(1, M)))\n",
"\n",
"# histogram error bars: num spikes\n",
"s = np.zeros((num_unit, 2))\n",
"for unit_id in range(num_unit):\n",
" # print(\"unit: %d\"%unit_id)\n",
" a = np.zeros(len(tau_id_range))\n",
" for tau_id in tau_id_range:\n",
" a[tau_id] = np.sum(B_spike[unit_id].col >= tau_id)\n",
" \n",
" s[unit_id] = [np.mean(a), np.std(a)]\n",
"\n",
"key_symbol = {'pair':'$(\\\\theta,\\phi)$', 'orientation':'$\\\\theta$', 'phase':'$\\phi$'}\n",
"\n",
"# 2D tuning\n",
"avg_firing_rate_pair = np.array([sts.zscore(stim_hist['pair'][unit_id]).reshape((len(tau_id_range), num_stim['orientation'], num_stim['phase'])) for unit_id in range(num_unit)])\n",
"\n",
"\n",
"import sys\n",
"sys.path.insert(0, './Persistent_Homology')\n",
"\n",
"from gratings import grating_model\n",
"from plotting import plot_data, plot_mean_against_index, show_feature\n",
"from persistence import persistence\n",
"from decoding import cohomological_parameterization, remove_feature\n",
"from noisereduction import *\n",
"from sklearn.decomposition import PCA \n",
"\n",
"# relabelling\n",
"param = np.arange(400).reshape(20,20)\n",
"phase_ref = 10\n",
"x = param[:phase_ref]\n",
"reparam = np.vstack((x, x[:,::-1]))\n",
"stim_val_reparam = {}\n",
"stim_val_reparam['phase'] = stim_val['phase'][:phase_ref]\n",
"stim_val_reparam['orientation'] = np.concatenate((stim_val['orientation'], stim_val['orientation']+180))\n",
"\n",
"\n",
"opt_time = np.load('optimal_time.npy')"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"stim_data.pkl\n",
"dict_keys(['stim_val', 'trial_stim_id', 'key_list', 'num_trial', 'trial_pair_id', 'pair_val', 'pair_trial_id', 'stim_id_trial', 'num_stim'])\n",
"spike_data.pkl\n",
"dict_keys(['spike_count_rate', 'avg_firing_rate', 'sem_firing_rate', 'firing_rate', 'stim_num_trial', 'C_r_fphi_theta', 'theta_hist', 'phase_hist', 'pair_hist'])\n",
"corr_data.pkl\n",
"dict_keys(['corr_stim_unit', 'optimal_avg_firing_rate', 'stim_hist', 'stim_hist_caution'])\n"
]
}
],
"source": [
"# load data\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import scipy.stats as sts\n",
"import pickle\n",
"import ipywidgets as widgets\n",
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from scipy import sparse\n",
"from matplotlib import cm\n",
"\n",
"# color maps\n",
"cmap_hot = cm.get_cmap('hot')\n",
"cmap_viridis = cm.get_cmap('viridis')\n",
"cmap_jet = cm.get_cmap('jet')\n",
"\n",
"# load and process stimuli\n",
"execfile('Stimulus.py')\n",
"data_folder = \"Data/\"\n",
"stim_file = \"Stiminfo_PVCre_2021_0012_s06_e14.csv\"\n",
"stim = pd.read_csv(data_folder+stim_file)\n",
"num_trial = len(stim)\n",
"\n",
"# load and process spikes\n",
"spike_times_file = \"Spiketimes_PVCre_2021_0012_s06_e14.npy\"\n",
"spike_times = np.load(data_folder+spike_times_file, allow_pickle=True)\n",
"active = [len(spike_times[i]) > 0 for i in range(len(spike_times))]\n",
"spike_times = spike_times[np.where(active)]\n",
"num_unit = len(spike_times)\n",
"\n",
"\n",
"# sort by firing rate\n",
"num_spike = list(map(len, spike_times))\n",
"spike_times = spike_times[np.argsort(num_spike)[::-1]]\n",
"execfile('load.py')\n",
"\n",
"# reverse correlation time offset range \n",
"max_delay = 300 # dt\n",
"tau_id_range = np.arange(max_delay)\n",
"\n",
"# experiment duration\n",
"latest_spike_time = max([np.max(s) for s in spike_times if len(s)])\n",
"latest_stim_offtime = list(stim['stim_offtime'])[-1]\n",
"experiment_dur = max([latest_spike_time, latest_stim_offtime])\n",
"\n",
"dt = 0.001 # 1 ms\n",
"exp_time = np.arange(0, experiment_dur, dt)\n",
"M = len(exp_time)\n",
"\n",
"# binary spike and stimulus trains\n",
"B_stim = {}\n",
"for key in key_list:\n",
" B_stim[key] = []\n",
" for stim_id, trials in enumerate(stim_id_trial[key]):\n",
" B_stim[key].append([])\n",
" s = []\n",
" for trial_id in trials:\n",
" t_on, t_off = stim['stim_ontime'][trial_id], stim['stim_offtime'][trial_id]\n",
" s += list(np.arange(int(t_on//dt), int(t_off//dt)))\n",
"\n",
" B_stim[key][stim_id] = sparse.coo_matrix((np.ones(len(s)), (np.zeros(len(s), dtype=int), s)), shape=(1, M))\n",
"s = spike_times//dt\n",
"B_spike = []\n",
"for unit_id in range(num_unit):\n",
" B_spike.append(sparse.coo_matrix((np.ones(len(s[unit_id])), (np.zeros(len(s[unit_id]), dtype=int), np.int0(s[unit_id]))), shape=(1, M)))\n",
"\n",
"# histogram error bars: num spikes\n",
"# spike_count = np.zeros((num_unit, 2))\n",
"# for unit_id in range(num_unit):\n",
"# # print(\"unit: %d\"%unit_id)\n",
"# a = np.zeros(len(tau_id_range))\n",
"# for tau_id in tau_id_range:\n",
"# a[tau_id] = np.sum(B_spike[unit_id].col >= tau_id)\n",
" \n",
"# spike_count[unit_id] = [np.mean(a), np.std(a)]\n",
"\n",
"key_symbol = {'pair':'$(\\\\theta,\\phi)$', 'orientation':'$\\\\theta$', 'phase':'$\\phi$'}\n",
"\n",
"# 2D tuning\n",
"avg_firing_rate_pair = np.array([sts.zscore(stim_hist['pair'][unit_id]).reshape((len(tau_id_range), num_stim['orientation'], num_stim['phase'])) for unit_id in range(num_unit)])\n",
"\n",
"sorted_spike_num = np.sort(num_spike)[::-1]\n",
"cutoff_num_spike = 1000\n",
"num_unit = np.sum(sorted_spike_num > cutoff_num_spike)\n",
"for key in key_list:\n",
" stim_hist[key] = stim_hist[key][:num_unit]\n",
"\n",
"\n",
"from tqdm import trange\n",
"import sys\n",
"sys.path.insert(0, './Persistent_Homology')\n",
"\n",
"import gratings\n",
"import decorator\n",
"from noisereduction import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Optimal time independently for each unit"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"# Z = sts.zscore([stim_hist['pair'][unit_id, opt_time[unit_id], :].T for unit_id in range(num_unit)], axis=0) \n",
"# taking zscore does not make sense since we are dealing with probability distributions as activity not firing rate\n",
"# Z = Z[:, np.logical_not(np.isnan(Z[0]))]\n",
"# n_components = len(Z[0])\n",
"from sklearn.decomposition import PCA\n",
"from scipy.stats import zscore\n",
"n_components = 20\n",
"pca = PCA(n_components)\n",
"data = pd.DataFrame([stim_hist['pair'][unit_id, opt_time[unit_id], :] for unit_id in range(num_unit)]).T\n",
"# X = pca.fit_transform(data)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PCA explained variance:\n",
"[0.16646987 0.10646209 0.07980927 0.07637544 0.07305655 0.06312245\n",
" 0.0520563 0.05141274 0.0436141 0.04114367 0.0392689 0.02982529\n",
" 0.02595947 0.02514927 0.02247076 0.01964191 0.01509293 0.01312476\n",
" 0.01038999 0.0080545 ]\n"
]
}
],
"source": [
"ncomp = 20\n",
"data = PCA_reduction(data, ncomp)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "13e6d26adfaf4482833713f11abb7724",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"\n",
"X = data.to_numpy()\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"\n",
"fig, ax = plt.subplots(1, 2, figsize=(15, 6))\n",
"for i, color_key in enumerate(key_list[1:]):\n",
" ax[i] = fig.add_subplot(1, 2, i+1, projection='3d')\n",
" ax[i].scatter3D(x, y, z, c=stim_val_pair[color_key])\n",
" ax[i].set_title(color_key, pad=25, size=15)\n",
" ax[i].set_xlabel(\"PC0\") \n",
" ax[i].set_ylabel(\"PC1\") \n",
" ax[i].set_zlabel(\"PC2\")\n",
" ax[i].set_xticks([])\n",
" ax[i].set_yticks([])\n",
" ax[i].set_zticks([])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "de7f668ccc914ad6a397d7556ea454ad",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a0ceebc38b8d4550ac51dbe81b566bff",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot PCA\n",
"ncomp_disp = 5\n",
"for color_key in key_list[1:]:\n",
" fig = plt.figure(figsize=(15,15))\n",
" for i in range(ncomp_disp):\n",
" for j in range(ncomp_disp):\n",
" ax = plt.subplot(ncomp_disp,ncomp_disp, j + ncomp_disp*i + 1)\n",
" if i==j:\n",
" ax.imshow(X[:,i].reshape(20,20))\n",
" ax.set_xticks(np.arange(20)[::10])\n",
" ax.set_xticklabels(stim_val['phase'][::10])\n",
" ax.set_yticks(np.arange(20)[::10])\n",
" ax.set_yticklabels(stim_val['orientation'][::10])\n",
"\n",
" else:\n",
" ax.scatter(X[:,j], X[:,i], s=1, c=360*stim_val_pair[color_key]/stim_period[color_key], cmap=cmap_phase)\n",
" ax.set_xticks([])\n",
" ax.set_yticks([])\n",
"\n",
" fig.suptitle('PCA: 10 dimensions, color: '+color_key, y=0.9)\n",
" plt.subplots_adjust(hspace=0, wspace=0)\n",
" fig.savefig('embed10d_fig\\embed10d_pca_color_cyclic_'+color_key+'.png')"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Topological noise reduction: 100%|██████████| 100/100 [00:12<00:00, 8.07it/s]\n"
]
}
],
"source": [
"data_top_denoised = top_noise_reduction(data, n=100, omega=0.2, fraction=0.1, plot=False)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "'c' argument has 400 elements, which is inconsistent with 'x' and 'y' with size 40.",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4221\u001b[0m, in \u001b[0;36mAxes._parse_scatter_color_args\u001b[1;34m(c, edgecolors, kwargs, xsize, get_next_color_func)\u001b[0m\n\u001b[0;32m 4220\u001b[0m \u001b[39mtry\u001b[39;00m: \u001b[39m# Is 'c' acceptable as PathCollection facecolors?\u001b[39;00m\n\u001b[1;32m-> 4221\u001b[0m colors \u001b[39m=\u001b[39m mcolors\u001b[39m.\u001b[39;49mto_rgba_array(c)\n\u001b[0;32m 4222\u001b[0m \u001b[39mexcept\u001b[39;00m (\u001b[39mTypeError\u001b[39;00m, \u001b[39mValueError\u001b[39;00m) \u001b[39mas\u001b[39;00m err:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:377\u001b[0m, in \u001b[0;36mto_rgba_array\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m 376\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> 377\u001b[0m rgba \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39marray([to_rgba(cc) \u001b[39mfor\u001b[39;00m cc \u001b[39min\u001b[39;00m c])\n\u001b[0;32m 379\u001b[0m \u001b[39mif\u001b[39;00m alpha \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:377\u001b[0m, in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 376\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> 377\u001b[0m rgba \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39marray([to_rgba(cc) \u001b[39mfor\u001b[39;00m cc \u001b[39min\u001b[39;00m c])\n\u001b[0;32m 379\u001b[0m \u001b[39mif\u001b[39;00m alpha \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:187\u001b[0m, in \u001b[0;36mto_rgba\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[39mif\u001b[39;00m rgba \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m: \u001b[39m# Suppress exception chaining of cache lookup failure.\u001b[39;00m\n\u001b[1;32m--> 187\u001b[0m rgba \u001b[39m=\u001b[39m _to_rgba_no_colorcycle(c, alpha)\n\u001b[0;32m 188\u001b[0m \u001b[39mtry\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:269\u001b[0m, in \u001b[0;36m_to_rgba_no_colorcycle\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m 268\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m np\u001b[39m.\u001b[39miterable(c):\n\u001b[1;32m--> 269\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mInvalid RGBA argument: \u001b[39m\u001b[39m{\u001b[39;00morig_c\u001b[39m!r}\u001b[39;00m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 270\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(c) \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m [\u001b[39m3\u001b[39m, \u001b[39m4\u001b[39m]:\n",
"\u001b[1;31mValueError\u001b[0m: Invalid RGBA argument: 0.0",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mc:\\Users\\arash\\Documents\\WiSe2022\\Research Project (Topology)\\staticgrating-phasefreq-topology\\05_Dimensionality_Reduction.ipynb Cell 10'\u001b[0m in \u001b[0;36m<cell line: 4>\u001b[1;34m()\u001b[0m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/WiSe2022/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000103?line=14'>15</a>\u001b[0m i\u001b[39m=\u001b[39mj\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/WiSe2022/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000103?line=16'>17</a>\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m---> <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/WiSe2022/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000103?line=17'>18</a>\u001b[0m ax\u001b[39m.\u001b[39;49mscatter(data_top_arr[:,j], data_top_arr[:,i], s\u001b[39m=\u001b[39;49m\u001b[39m1\u001b[39;49m, c\u001b[39m=\u001b[39;49m\u001b[39m360\u001b[39;49m\u001b[39m*\u001b[39;49mstim_val_pair[color_key]\u001b[39m/\u001b[39;49mstim_period[color_key], cmap\u001b[39m=\u001b[39;49mcmap_phase)\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/WiSe2022/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000103?line=18'>19</a>\u001b[0m ax\u001b[39m.\u001b[39mset_xticks([])\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/WiSe2022/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000103?line=19'>20</a>\u001b[0m ax\u001b[39m.\u001b[39mset_yticks([])\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\__init__.py:1412\u001b[0m, in \u001b[0;36m_preprocess_data.<locals>.inner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1409\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(func)\n\u001b[0;32m 1410\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39minner\u001b[39m(ax, \u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m 1411\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m-> 1412\u001b[0m \u001b[39mreturn\u001b[39;00m func(ax, \u001b[39m*\u001b[39;49m\u001b[39mmap\u001b[39;49m(sanitize_sequence, args), \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m 1414\u001b[0m bound \u001b[39m=\u001b[39m new_sig\u001b[39m.\u001b[39mbind(ax, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 1415\u001b[0m auto_label \u001b[39m=\u001b[39m (bound\u001b[39m.\u001b[39marguments\u001b[39m.\u001b[39mget(label_namer)\n\u001b[0;32m 1416\u001b[0m \u001b[39mor\u001b[39;00m bound\u001b[39m.\u001b[39mkwargs\u001b[39m.\u001b[39mget(label_namer))\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4387\u001b[0m, in \u001b[0;36mAxes.scatter\u001b[1;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)\u001b[0m\n\u001b[0;32m 4384\u001b[0m \u001b[39mif\u001b[39;00m edgecolors \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 4385\u001b[0m orig_edgecolor \u001b[39m=\u001b[39m kwargs\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39medgecolor\u001b[39m\u001b[39m'\u001b[39m, \u001b[39mNone\u001b[39;00m)\n\u001b[0;32m 4386\u001b[0m c, colors, edgecolors \u001b[39m=\u001b[39m \\\n\u001b[1;32m-> 4387\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_parse_scatter_color_args(\n\u001b[0;32m 4388\u001b[0m c, edgecolors, kwargs, x\u001b[39m.\u001b[39;49msize,\n\u001b[0;32m 4389\u001b[0m get_next_color_func\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_patches_for_fill\u001b[39m.\u001b[39;49mget_next_color)\n\u001b[0;32m 4391\u001b[0m \u001b[39mif\u001b[39;00m plotnonfinite \u001b[39mand\u001b[39;00m colors \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 4392\u001b[0m c \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mma\u001b[39m.\u001b[39mmasked_invalid(c)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4227\u001b[0m, in \u001b[0;36mAxes._parse_scatter_color_args\u001b[1;34m(c, edgecolors, kwargs, xsize, get_next_color_func)\u001b[0m\n\u001b[0;32m 4225\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 4226\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m valid_shape:\n\u001b[1;32m-> 4227\u001b[0m \u001b[39mraise\u001b[39;00m invalid_shape_exception(c\u001b[39m.\u001b[39msize, xsize) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 4228\u001b[0m \u001b[39m# Both the mapping *and* the RGBA conversion failed: pretty\u001b[39;00m\n\u001b[0;32m 4229\u001b[0m \u001b[39m# severe failure => one may appreciate a verbose feedback.\u001b[39;00m\n\u001b[0;32m 4230\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m 4231\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\u001b[39mc\u001b[39m\u001b[39m'\u001b[39m\u001b[39m argument must be a color, a sequence of colors, \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 4232\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mor a sequence of numbers, not \u001b[39m\u001b[39m{\u001b[39;00mc\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n",
"\u001b[1;31mValueError\u001b[0m: 'c' argument has 400 elements, which is inconsistent with 'x' and 'y' with size 40."
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "fe1632de6c2949929f0cf3c191492ef7",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot PCA\n",
"data_top_arr = data_top_denoised.to_numpy()\n",
"ncomp_disp = 5\n",
"for color_key in key_list[1:]:\n",
" fig = plt.figure(figsize=(15,15))\n",
" for i in range(ncomp_disp):\n",
" for j in range(ncomp_disp):\n",
" ax = plt.subplot(ncomp_disp,ncomp_disp, j + ncomp_disp*i + 1)\n",
" if i==j:\n",
" # ax.imshow(data_top_arr[:,i].reshape(20,20))\n",
" # ax.set_xticks(np.arange(20)[::10])\n",
" # ax.set_xticklabels(stim_val['phase'][::10])\n",
" # ax.set_yticks(np.arange(20)[::10])\n",
" # ax.set_yticklabels(stim_val['orientation'][::10])\n",
" i=j\n",
"\n",
" else:\n",
" ax.scatter(data_top_arr[:,j], data_top_arr[:,i], s=1, c=360*stim_val_pair[color_key]/stim_period[color_key], cmap=cmap_phase)\n",
" ax.set_xticks([])\n",
" ax.set_yticks([])\n",
"\n",
" fig.suptitle('PCA: 10 dimensions, color: '+color_key, y=0.9)\n",
" plt.subplots_adjust(hspace=0, wspace=0)\n",
" fig.savefig('embed10d_fig\\embed10d_pca_color_cyclic_'+color_key+'.png')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"PC_values = np.arange(n_components)\n",
"plt.plot(PC_values, pca.explained_variance_ratio_, 'o-', linewidth=2, color='blue')\n",
"plt.title('Scree Plot')\n",
"plt.xticks(np.arange(20))\n",
"plt.xlabel('Principal Component')\n",
"plt.ylabel('Variance Explained')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "eec2658304d540d49e82dc10802fe382",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABDgAAAGwCAYAAABMy9WdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9d5ycWXXg/3/uEypXh+qo7lbOaZI0mqiJzDAwZGwyNpgFe9d4DbZZh/Xv67D22t71rrF3HQCvARtsDBgwYXJmskbSKOfc6hwr15Pu74/qbrWkltQKnc/7NXppuvqpp251tereOs855yqtNUIIIYQQQgghhBAzmTHVAxBCCCGEEEIIIYS4WhLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hhBBCCCGEEELMeBLgEEIIIYQQQgghxIwnAQ4hxIyhlFqklNJKqXdMwLlDSqnfV0rdcIX3/y9KqXvGuF0rpT57lcMTQgghrimZn4QQs5EEOIQQM0k7cBvw4gScOwT8HnDDFd7/vwD3jHH7bcB3rvCcQgghhBBCiHGypnoAQggxHkqpiNa6CLw61WO5HFrrGTVeIYQQQgghZirJ4BBCTAml1AeUUruUUiWl1Cml1B8rpayh731iKHV2k1LqOaVUAfjChUpUlFL/QSm1Z+hcJ5RS/+Wc739NKfWGUuoBpdROpVROKfWiUmrtqMMyQ39/degxtFJq0dD9/3RorFmlVKtS6ptKqcZR5z8O1AC/N+q+9wx977wUYKXUZ5VSh4bGe1gp9flzvv/7SqkepdSNSqlXlVJ5pdR2pdTmK/6BCyGEmDNGzXvvUUrtV0oVh+a9Neccaiql/rtSqlsp1aWU+mulVHjUeeYppf5BKXVUKVVQSh1USv2RUip0zuP99tB8VlRKdSqlHjtnnkwppb489L2iUuplpdQtE/xjEELMQRLgEEJMOqXUg8C/AtuAdwP/B/gN4P+ec+i/AD8C3g78+ALn+gLwt8APgHcM/f9/G6OueAHwP4E/Bj4M1AP/qpRSQ9+/b+jvP6JcVnIb5ZIYho7978DDwOeAJcAzSqnh99D3AoPA/xt1320XGO+nh57vD4F3Ui5f+V9Kqd8659AY8HXgS8D7gRLwPaVUbKzzCiGEEOdYCPxv4L8BHwEqgceVUpFRx/w60AR8jPIc+YvAr476fi3QB/wa8NDQMZ+kPI8BoJT6OeB3hh7rrcB/BA4D8aHvh4GngLcAXwDeA3QDT40OggghxLUgJSpCiKnwh8BzWuufH/r6saE4w58opf5o1HF/pbX+y+EvhjMqRn1dQblvxh9prf9g6OYnh4IAv6uU+luttT90ewq4Q2t9aOi+BvB9YCWwH9gydNyRc8tKtNa/MOoxTeAVoBW4E3hBa71dKeUBrRcrSRl6zN8Hvqa1/vWhm59QSlUCv62U+uJQGQ5AFPic1vqZofu2A9uBu4DHLvQYQgghxJBa4N1a65cBlFJbgSPAJ4C/GzrmuNb6E0P//7hS6g7gfcD/ANBa76J8AYKhc7wE5IB/UEr9itbaATYBT2it/2bUY39v1P9/DFgHrB01Bz8FHKAcYPnCtXrCQgghGRxCiEk1FCC4ifMbb/4r5fek20bd9pNLnO42yleIvqOUsob/AM8ADUDLqGOPDy+shuwd+nv0MRca89uG0mkHAY9ycANgxaXue44WylfKxnruFcD6Ubc5wHNXMl4hhBAC6BoObgBorU8AWykHJIY9cc599jJqnlFln1NK7R0qF3WBbwJhypmRAG8Cb1dK/cFQaal5zjnfMvS4x0bN0wDPAxuv6hkKIcQ5JMAhhJhstYANdJ5z+/DXqTFuu9i5APZQXnQN/3l26Pb5o44dOOe+ztDfES5CKXUz5XKSVuDjlIMqt47nvmOYN/T3eJ57RmsdDH8xdJXsSh5TCCHE3NR1gdvmjfp64JzvO5w9z3wO+HPKGY/vphwc+eWh7w0f9w+US1Q+ALwGdA716RgOdNRSnjfdc/58krPnaSGEuGpSoiKEmGw9lBc29efc3jD0dx9DdbuAvsS5+ob+fgdjB0MOXMkAz/FeyrXCH9RaawCl1MIrPNfonh6jjX7uQgghxLVw7lwzfNueyzjHzwLf1Vr/1+Ebzm1UOhSM/wvgL5RS84GPUu531Uq5FKYPeINyb45zlS5jLEIIcUkS4BBCTCqttT9UB/yzlBuCDvsAEFDub/GWcZ7uFaAANGmtL1XOcikXypCIAu5wcGPIRy9w/0tlV7QCbZSf+6Ojbv8AkAZ2jXu0QgghxMXVK6VuH9WDYwHlEtGvXsY5opwfhBhrDgRAa30K+FOl1CeB4UDI08CDwEmt9VhZJUIIcc1IgEMIMRV+j3Izs68C36Lce+K/AV/RWree2djk4rTWA0qp3wf+ciir4gXKpXcrgHu11u8d74C01o5S6hjwAaXUbqAI7ASeBD6nlPoi5R1dbqfcMO1c+4GHlVKPAVnggNY6M/oArXUwNN4vKaV6h859N+WrWr8zqsGoEEIIcbV6gG8opX6X8sWAP6BcovK1yzjHk8B/Vkq9RrlB6UeBZaMPUEp9iXKWxquUdxS7F1gO/ObQIf8I/BLwnFLqz4GjlLdW3wR0aK3/4kqenBBCjEUCHEKISae1fkIp9SHgdykvlrqA/0U58HG55/ofSqk24POUu7EXgYOUG3derl+iXGv8FOUGaou11o8opX4T+BXg05SzRt4x9BijfQH4a8qNUWOUF3jPjTHerwxt0ferQ39agV+XBZ4QQohr7ATlLc7/lPKWsW8AH7nMYPofAnWUt1CH8u4o/5lywH/YK5Tnx1+knMl4GPi01voHAFrrolLq3qFz/QHlsswu4HXKPa6EEOKaUWdnXQshhBBCCCFmMqXU14B1WmvZpUQIMafILipCCCGEEEIIIYSY8STAIYQQQgghhBBCiBlPSlSEEEIIIYQQQggx40kGhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXDMAkqpf1BKdSmldl/g+0op9VdKqcNKqZ1KqZsme4xCCCHEVJA5UgghhJg7JMAxO3wNeOgi338bsHzoz2eAv52EMQkhhBDTwdeQOVIIIYSYEyTAMQtorV8A+i5yyLuBf9RlrwJVSql5kzM6IYQQYurIHCmEEELMHRLgmBuagVOjvm4duk0IIYSY62SOFEIIIWYJa6oHIKYXpdRnKKfoEo/HN6xatWpSHveNN96YlMcRQoiZYuPGjZP2WFu3bu3RWtdN2gPOUDJHCiHE9CBzpLgQCXDMDaeB+aO+bhm67Txa6y8DXwbYuHGjlkWVEEJMjcl8/1VKnZi0B5t+ZI4UQogZRuZIcSFSojI3/BD4uaFO8bcCg1rr9qkelBBCCDENyBwphBBCzBKSwTELKKX+BbgHqFVKtQK/B9gAWuu/Ax4B3g4cBvLAJ6dmpEIIIcTkkjlSCCGEmDskwDELaK0/fInva+CXJ2k4QgghxLQhc6QQQggxd0iJihBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCGEEEIIIWY8CXAIIYQQQgghhBBixpMAhxBCCCG
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"\n",
"fig, ax = plt.subplots(1, 2, figsize=(15, 6))\n",
"for i, color_key in enumerate(key_list[1:]):\n",
" ax[i] = fig.add_subplot(1, 2, i+1, projection='3d')\n",
" ax[i].scatter3D(x, y, z, c=stim_val_pair[color_key])\n",
" ax[i].set_title(color_key, pad=25, size=15)\n",
" ax[i].set_xlabel(\"PC0\") \n",
" ax[i].set_ylabel(\"PC1\") \n",
" ax[i].set_zlabel(\"PC2\")\n",
" ax[i].set_xticks([])\n",
" ax[i].set_yticks([])\n",
" ax[i].set_zticks([])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "91644d7030cf496199ae5333b0d89ca8",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=5, description='phase_id', max=19), Output()), _dom_classes=('widget-int…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"\n",
"\n",
"@widgets.interact(phase_id = widgets.IntSlider(5,0,19))\n",
"\n",
"def phase_sec(phase_id):\n",
" fig, ax = plt.subplots(1, 2, figsize=(10, 6))\n",
" ax[0] = fig.add_subplot(1, 2, 1, projection='3d')\n",
" phase_sec_id = stim_val['pair'][:,1] == stim_val['phase'][phase_id]\n",
" x, y, z = X[phase_sec_id, 0], X[phase_sec_id,1], X[phase_sec_id,2]\n",
" ax[0].scatter3D(x, y, z, c=stim_val['pair'][phase_sec_id,0])\n",
" ax[0].set_title(\"orientation\", pad=25, size=15)\n",
" ax[0].set_xlabel(\"X\") \n",
" ax[0].set_ylabel(\"Y\") \n",
" ax[0].set_zlabel(\"Z\")\n",
"\n",
" ax[1] = fig.add_subplot(1, 2, 2, projection='3d')\n",
" x, y, z = X[:,0], X[:,1], X[:,2]\n",
" ax[1].scatter3D(x, y, z, c=stim_val['pair'][:,1])\n",
" ax[1].set_title(\"phase\", pad=25, size=15)\n",
" ax[1].set_xlabel(\"X\") \n",
" ax[1].set_ylabel(\"Y\") \n",
" ax[1].set_zlabel(\"Z\")\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"# @title run a manifold embedding algorithm (UMAP) in two or three dimensions. \n",
"# !pip install umap-learn --quiet\n",
"from umap import UMAP\n",
"\n",
"cut_off_dim = 10\n",
"X_reduced = X[:,:cut_off_dim]\n",
"ncomp = cut_off_dim # try 2, then try 3\n",
"xinit = 3 * sts.zscore(X_reduced, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"stim_period = {'orientation':180, 'phase':360}"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error in callback <function flush_figures at 0x000001F88286D040> (for post_execute):\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\matplotlib_inline\\backend_inline.py:121\u001b[0m, in \u001b[0;36mflush_figures\u001b[1;34m()\u001b[0m\n\u001b[0;32m 118\u001b[0m \u001b[39mif\u001b[39;00m InlineBackend\u001b[39m.\u001b[39minstance()\u001b[39m.\u001b[39mclose_figures:\n\u001b[0;32m 119\u001b[0m \u001b[39m# ignore the tracking, just draw and close all figures\u001b[39;00m\n\u001b[0;32m 120\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m--> 121\u001b[0m \u001b[39mreturn\u001b[39;00m show(\u001b[39mTrue\u001b[39;49;00m)\n\u001b[0;32m 122\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mException\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[0;32m 123\u001b[0m \u001b[39m# safely show traceback if in IPython, else raise\u001b[39;00m\n\u001b[0;32m 124\u001b[0m ip \u001b[39m=\u001b[39m get_ipython()\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\matplotlib_inline\\backend_inline.py:41\u001b[0m, in \u001b[0;36mshow\u001b[1;34m(close, block)\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 40\u001b[0m \u001b[39mfor\u001b[39;00m figure_manager \u001b[39min\u001b[39;00m Gcf\u001b[39m.\u001b[39mget_all_fig_managers():\n\u001b[1;32m---> 41\u001b[0m display(\n\u001b[0;32m 42\u001b[0m figure_manager\u001b[39m.\u001b[39;49mcanvas\u001b[39m.\u001b[39;49mfigure,\n\u001b[0;32m 43\u001b[0m metadata\u001b[39m=\u001b[39;49m_fetch_figure_metadata(figure_manager\u001b[39m.\u001b[39;49mcanvas\u001b[39m.\u001b[39;49mfigure)\n\u001b[0;32m 44\u001b[0m )\n\u001b[0;32m 45\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 46\u001b[0m show\u001b[39m.\u001b[39m_to_draw \u001b[39m=\u001b[39m []\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\IPython\\core\\display_functions.py:298\u001b[0m, in \u001b[0;36mdisplay\u001b[1;34m(include, exclude, metadata, transient, display_id, raw, clear, *objs, **kwargs)\u001b[0m\n\u001b[0;32m 296\u001b[0m publish_display_data(data\u001b[39m=\u001b[39mobj, metadata\u001b[39m=\u001b[39mmetadata, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 297\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> 298\u001b[0m format_dict, md_dict \u001b[39m=\u001b[39m \u001b[39mformat\u001b[39;49m(obj, include\u001b[39m=\u001b[39;49minclude, exclude\u001b[39m=\u001b[39;49mexclude)\n\u001b[0;32m 299\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m format_dict:\n\u001b[0;32m 300\u001b[0m \u001b[39m# nothing to display (e.g. _ipython_display_ took over)\u001b[39;00m\n\u001b[0;32m 301\u001b[0m \u001b[39mcontinue\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\IPython\\core\\formatters.py:178\u001b[0m, in \u001b[0;36mDisplayFormatter.format\u001b[1;34m(self, obj, include, exclude)\u001b[0m\n\u001b[0;32m 176\u001b[0m md \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 177\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m--> 178\u001b[0m data \u001b[39m=\u001b[39m formatter(obj)\n\u001b[0;32m 179\u001b[0m \u001b[39mexcept\u001b[39;00m:\n\u001b[0;32m 180\u001b[0m \u001b[39m# FIXME: log the exception\u001b[39;00m\n\u001b[0;32m 181\u001b[0m \u001b[39mraise\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\decorator.py:232\u001b[0m, in \u001b[0;36mdecorate.<locals>.fun\u001b[1;34m(*args, **kw)\u001b[0m\n\u001b[0;32m 230\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m kwsyntax:\n\u001b[0;32m 231\u001b[0m args, kw \u001b[39m=\u001b[39m fix(args, kw, sig)\n\u001b[1;32m--> 232\u001b[0m \u001b[39mreturn\u001b[39;00m caller(func, \u001b[39m*\u001b[39;49m(extras \u001b[39m+\u001b[39;49m args), \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkw)\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\IPython\\core\\formatters.py:222\u001b[0m, in \u001b[0;36mcatch_format_error\u001b[1;34m(method, self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 220\u001b[0m \u001b[39m\"\"\"show traceback on failed format call\"\"\"\u001b[39;00m\n\u001b[0;32m 221\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m--> 222\u001b[0m r \u001b[39m=\u001b[39m method(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m 223\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mNotImplementedError\u001b[39;00m:\n\u001b[0;32m 224\u001b[0m \u001b[39m# don't warn on NotImplementedErrors\u001b[39;00m\n\u001b[0;32m 225\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_return(\u001b[39mNone\u001b[39;00m, args[\u001b[39m0\u001b[39m])\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\IPython\\core\\formatters.py:339\u001b[0m, in \u001b[0;36mBaseFormatter.__call__\u001b[1;34m(self, obj)\u001b[0m\n\u001b[0;32m 337\u001b[0m \u001b[39mpass\u001b[39;00m\n\u001b[0;32m 338\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> 339\u001b[0m \u001b[39mreturn\u001b[39;00m printer(obj)\n\u001b[0;32m 340\u001b[0m \u001b[39m# Finally look for special method names\u001b[39;00m\n\u001b[0;32m 341\u001b[0m method \u001b[39m=\u001b[39m get_real_method(obj, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mprint_method)\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\IPython\\core\\pylabtools.py:151\u001b[0m, in \u001b[0;36mprint_figure\u001b[1;34m(fig, fmt, bbox_inches, base64, **kwargs)\u001b[0m\n\u001b[0;32m 148\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mmatplotlib\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbackend_bases\u001b[39;00m \u001b[39mimport\u001b[39;00m FigureCanvasBase\n\u001b[0;32m 149\u001b[0m FigureCanvasBase(fig)\n\u001b[1;32m--> 151\u001b[0m fig\u001b[39m.\u001b[39;49mcanvas\u001b[39m.\u001b[39;49mprint_figure(bytes_io, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkw)\n\u001b[0;32m 152\u001b[0m data \u001b[39m=\u001b[39m bytes_io\u001b[39m.\u001b[39mgetvalue()\n\u001b[0;32m 153\u001b[0m \u001b[39mif\u001b[39;00m fmt \u001b[39m==\u001b[39m \u001b[39m'\u001b[39m\u001b[39msvg\u001b[39m\u001b[39m'\u001b[39m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\backend_bases.py:2319\u001b[0m, in \u001b[0;36mFigureCanvasBase.print_figure\u001b[1;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[0m\n\u001b[0;32m 2315\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m 2316\u001b[0m \u001b[39m# _get_renderer may change the figure dpi (as vector formats\u001b[39;00m\n\u001b[0;32m 2317\u001b[0m \u001b[39m# force the figure dpi to 72), so we need to set it again here.\u001b[39;00m\n\u001b[0;32m 2318\u001b[0m \u001b[39mwith\u001b[39;00m cbook\u001b[39m.\u001b[39m_setattr_cm(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfigure, dpi\u001b[39m=\u001b[39mdpi):\n\u001b[1;32m-> 2319\u001b[0m result \u001b[39m=\u001b[39m print_method(\n\u001b[0;32m 2320\u001b[0m filename,\n\u001b[0;32m 2321\u001b[0m facecolor\u001b[39m=\u001b[39;49mfacecolor,\n\u001b[0;32m 2322\u001b[0m edgecolor\u001b[39m=\u001b[39;49medgecolor,\n\u001b[0;32m 2323\u001b[0m orientation\u001b[39m=\u001b[39;49morientation,\n\u001b[0;32m 2324\u001b[0m bbox_inches_restore\u001b[39m=\u001b[39;49m_bbox_inches_restore,\n\u001b[0;32m 2325\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m 2326\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 2327\u001b[0m \u001b[39mif\u001b[39;00m bbox_inches \u001b[39mand\u001b[39;00m restore_bbox:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\backend_bases.py:1648\u001b[0m, in \u001b[0;36m_check_savefig_extra_args.<locals>.wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 1640\u001b[0m _api\u001b[39m.\u001b[39mwarn_deprecated(\n\u001b[0;32m 1641\u001b[0m \u001b[39m'\u001b[39m\u001b[39m3.3\u001b[39m\u001b[39m'\u001b[39m, name\u001b[39m=\u001b[39mname, removal\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39m3.6\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[0;32m 1642\u001b[0m message\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39m%(name)s\u001b[39;00m\u001b[39m() got unexpected keyword argument \u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m 1643\u001b[0m \u001b[39m+\u001b[39m arg \u001b[39m+\u001b[39m \u001b[39m'\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m which is no longer supported as of \u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m 1644\u001b[0m \u001b[39m'\u001b[39m\u001b[39m%(since)s\u001b[39;00m\u001b[39m and will become an error \u001b[39m\u001b[39m'\u001b[39m\n\u001b[0;32m 1645\u001b[0m \u001b[39m'\u001b[39m\u001b[39m%(removal)s\u001b[39;00m\u001b[39m'\u001b[39m)\n\u001b[0;32m 1646\u001b[0m kwargs\u001b[39m.\u001b[39mpop(arg)\n\u001b[1;32m-> 1648\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\_api\\deprecation.py:412\u001b[0m, in \u001b[0;36mdelete_parameter.<locals>.wrapper\u001b[1;34m(*inner_args, **inner_kwargs)\u001b[0m\n\u001b[0;32m 402\u001b[0m deprecation_addendum \u001b[39m=\u001b[39m (\n\u001b[0;32m 403\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mIf any parameter follows \u001b[39m\u001b[39m{\u001b[39;00mname\u001b[39m!r}\u001b[39;00m\u001b[39m, they should be passed as \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m 404\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mkeyword, not positionally.\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 405\u001b[0m warn_deprecated(\n\u001b[0;32m 406\u001b[0m since,\n\u001b[0;32m 407\u001b[0m name\u001b[39m=\u001b[39m\u001b[39mrepr\u001b[39m(name),\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 410\u001b[0m \u001b[39melse\u001b[39;00m deprecation_addendum,\n\u001b[0;32m 411\u001b[0m \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[1;32m--> 412\u001b[0m \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49minner_args, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49minner_kwargs)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:540\u001b[0m, in \u001b[0;36mFigureCanvasAgg.print_png\u001b[1;34m(self, filename_or_obj, metadata, pil_kwargs, *args)\u001b[0m\n\u001b[0;32m 490\u001b[0m \u001b[39m@_check_savefig_extra_args\u001b[39m\n\u001b[0;32m 491\u001b[0m \u001b[39m@_api\u001b[39m\u001b[39m.\u001b[39mdelete_parameter(\u001b[39m\"\u001b[39m\u001b[39m3.5\u001b[39m\u001b[39m\"\u001b[39m, \u001b[39m\"\u001b[39m\u001b[39margs\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 492\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mprint_png\u001b[39m(\u001b[39mself\u001b[39m, filename_or_obj, \u001b[39m*\u001b[39margs,\n\u001b[0;32m 493\u001b[0m metadata\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, pil_kwargs\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m):\n\u001b[0;32m 494\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 495\u001b[0m \u001b[39m Write the figure to a PNG file.\u001b[39;00m\n\u001b[0;32m 496\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 538\u001b[0m \u001b[39m *metadata*, including the default 'Software' key.\u001b[39;00m\n\u001b[0;32m 539\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 540\u001b[0m FigureCanvasAgg\u001b[39m.\u001b[39;49mdraw(\u001b[39mself\u001b[39;49m)\n\u001b[0;32m 541\u001b[0m mpl\u001b[39m.\u001b[39mimage\u001b[39m.\u001b[39mimsave(\n\u001b[0;32m 542\u001b[0m filename_or_obj, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mbuffer_rgba(), \u001b[39mformat\u001b[39m\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mpng\u001b[39m\u001b[39m\"\u001b[39m, origin\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mupper\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 543\u001b[0m dpi\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfigure\u001b[39m.\u001b[39mdpi, metadata\u001b[39m=\u001b[39mmetadata, pil_kwargs\u001b[39m=\u001b[39mpil_kwargs)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\backends\\backend_agg.py:436\u001b[0m, in \u001b[0;36mFigureCanvasAgg.draw\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 432\u001b[0m \u001b[39m# Acquire a lock on the shared font cache.\u001b[39;00m\n\u001b[0;32m 433\u001b[0m \u001b[39mwith\u001b[39;00m RendererAgg\u001b[39m.\u001b[39mlock, \\\n\u001b[0;32m 434\u001b[0m (\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtoolbar\u001b[39m.\u001b[39m_wait_cursor_for_draw_cm() \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtoolbar\n\u001b[0;32m 435\u001b[0m \u001b[39melse\u001b[39;00m nullcontext()):\n\u001b[1;32m--> 436\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mfigure\u001b[39m.\u001b[39;49mdraw(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mrenderer)\n\u001b[0;32m 437\u001b[0m \u001b[39m# A GUI class may be need to update a window using this draw, so\u001b[39;00m\n\u001b[0;32m 438\u001b[0m \u001b[39m# don't forget to call the superclass.\u001b[39;00m\n\u001b[0;32m 439\u001b[0m \u001b[39msuper\u001b[39m()\u001b[39m.\u001b[39mdraw()\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\artist.py:73\u001b[0m, in \u001b[0;36m_finalize_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[0;32m 71\u001b[0m \u001b[39m@wraps\u001b[39m(draw)\n\u001b[0;32m 72\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mdraw_wrapper\u001b[39m(artist, renderer, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m---> 73\u001b[0m result \u001b[39m=\u001b[39m draw(artist, renderer, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m 74\u001b[0m \u001b[39mif\u001b[39;00m renderer\u001b[39m.\u001b[39m_rasterizing:\n\u001b[0;32m 75\u001b[0m renderer\u001b[39m.\u001b[39mstop_rasterizing()\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\artist.py:50\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 48\u001b[0m renderer\u001b[39m.\u001b[39mstart_filter()\n\u001b[1;32m---> 50\u001b[0m \u001b[39mreturn\u001b[39;00m draw(artist, renderer)\n\u001b[0;32m 51\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 52\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\figure.py:2810\u001b[0m, in \u001b[0;36mFigure.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 2807\u001b[0m \u001b[39m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[0;32m 2809\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpatch\u001b[39m.\u001b[39mdraw(renderer)\n\u001b[1;32m-> 2810\u001b[0m mimage\u001b[39m.\u001b[39;49m_draw_list_compositing_images(\n\u001b[0;32m 2811\u001b[0m renderer, \u001b[39mself\u001b[39;49m, artists, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msuppressComposite)\n\u001b[0;32m 2813\u001b[0m \u001b[39mfor\u001b[39;00m sfig \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39msubfigs:\n\u001b[0;32m 2814\u001b[0m sfig\u001b[39m.\u001b[39mdraw(renderer)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\image.py:132\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[1;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[39mif\u001b[39;00m not_composite \u001b[39mor\u001b[39;00m \u001b[39mnot\u001b[39;00m has_images:\n\u001b[0;32m 131\u001b[0m \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m artists:\n\u001b[1;32m--> 132\u001b[0m a\u001b[39m.\u001b[39;49mdraw(renderer)\n\u001b[0;32m 133\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 134\u001b[0m \u001b[39m# Composite any adjacent images together\u001b[39;00m\n\u001b[0;32m 135\u001b[0m image_group \u001b[39m=\u001b[39m []\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\artist.py:50\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 48\u001b[0m renderer\u001b[39m.\u001b[39mstart_filter()\n\u001b[1;32m---> 50\u001b[0m \u001b[39mreturn\u001b[39;00m draw(artist, renderer)\n\u001b[0;32m 51\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 52\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_base.py:3075\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 3072\u001b[0m \u001b[39m# the patch draws the background rectangle -- the frame below\u001b[39;00m\n\u001b[0;32m 3073\u001b[0m \u001b[39m# will draw the edges\u001b[39;00m\n\u001b[0;32m 3074\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39maxison \u001b[39mand\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_frameon:\n\u001b[1;32m-> 3075\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpatch\u001b[39m.\u001b[39;49mdraw(renderer)\n\u001b[0;32m 3077\u001b[0m \u001b[39mif\u001b[39;00m artists_rasterized:\n\u001b[0;32m 3078\u001b[0m \u001b[39mfor\u001b[39;00m a \u001b[39min\u001b[39;00m artists_rasterized:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\artist.py:50\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 48\u001b[0m renderer\u001b[39m.\u001b[39mstart_filter()\n\u001b[1;32m---> 50\u001b[0m \u001b[39mreturn\u001b[39;00m draw(artist, renderer)\n\u001b[0;32m 51\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[0;32m 52\u001b[0m \u001b[39mif\u001b[39;00m artist\u001b[39m.\u001b[39mget_agg_filter() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\patches.py:609\u001b[0m, in \u001b[0;36mPatch.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 606\u001b[0m \u001b[39mwith\u001b[39;00m cbook\u001b[39m.\u001b[39m_setattr_cm(\u001b[39mself\u001b[39m, _dashoffset\u001b[39m=\u001b[39m\u001b[39m0\u001b[39m), \\\n\u001b[0;32m 607\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_bind_draw_path_function(renderer) \u001b[39mas\u001b[39;00m draw_path:\n\u001b[0;32m 608\u001b[0m path \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mget_path()\n\u001b[1;32m--> 609\u001b[0m transform \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_transform()\n\u001b[0;32m 610\u001b[0m tpath \u001b[39m=\u001b[39m transform\u001b[39m.\u001b[39mtransform_path_non_affine(path)\n\u001b[0;32m 611\u001b[0m affine \u001b[39m=\u001b[39m transform\u001b[39m.\u001b[39mget_affine()\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\patches.py:278\u001b[0m, in \u001b[0;36mPatch.get_transform\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 276\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_transform\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m 277\u001b[0m \u001b[39m\"\"\"Return the `~.transforms.Transform` applied to the `Patch`.\"\"\"\u001b[39;00m\n\u001b[1;32m--> 278\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_patch_transform() \u001b[39m+\u001b[39m artist\u001b[39m.\u001b[39mArtist\u001b[39m.\u001b[39mget_transform(\u001b[39mself\u001b[39m)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\patches.py:754\u001b[0m, in \u001b[0;36mRectangle.get_patch_transform\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 747\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_patch_transform\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m 748\u001b[0m \u001b[39m# Note: This cannot be called until after this has been added to\u001b[39;00m\n\u001b[0;32m 749\u001b[0m \u001b[39m# an Axes, otherwise unit conversion will fail. This makes it very\u001b[39;00m\n\u001b[0;32m 750\u001b[0m \u001b[39m# important to call the accessor method and not directly access the\u001b[39;00m\n\u001b[0;32m 751\u001b[0m \u001b[39m# transformation member variable.\u001b[39;00m\n\u001b[0;32m 752\u001b[0m bbox \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mget_bbox()\n\u001b[0;32m 753\u001b[0m \u001b[39mreturn\u001b[39;00m (transforms\u001b[39m.\u001b[39mBboxTransformTo(bbox)\n\u001b[1;32m--> 754\u001b[0m \u001b[39m+\u001b[39m transforms\u001b[39m.\u001b[39;49mAffine2D()\u001b[39m.\u001b[39;49mrotate_deg_around(\n\u001b[0;32m 755\u001b[0m bbox\u001b[39m.\u001b[39;49mx0, bbox\u001b[39m.\u001b[39;49my0, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mangle))\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\transforms.py:2042\u001b[0m, in \u001b[0;36mAffine2D.rotate_deg_around\u001b[1;34m(self, x, y, degrees)\u001b[0m\n\u001b[0;32m 2040\u001b[0m \u001b[39m# Cast to float to avoid wraparound issues with uint8's\u001b[39;00m\n\u001b[0;32m 2041\u001b[0m x, y \u001b[39m=\u001b[39m \u001b[39mfloat\u001b[39m(x), \u001b[39mfloat\u001b[39m(y)\n\u001b[1;32m-> 2042\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mtranslate(\u001b[39m-\u001b[39;49mx, \u001b[39m-\u001b[39;49my)\u001b[39m.\u001b[39;49mrotate_deg(degrees)\u001b[39m.\u001b[39mtranslate(x, y)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\transforms.py:2020\u001b[0m, in \u001b[0;36mAffine2D.rotate_deg\u001b[1;34m(self, degrees)\u001b[0m\n\u001b[0;32m 2012\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mrotate_deg\u001b[39m(\u001b[39mself\u001b[39m, degrees):\n\u001b[0;32m 2013\u001b[0m \u001b[39m\"\"\"\u001b[39;00m\n\u001b[0;32m 2014\u001b[0m \u001b[39m Add a rotation (in degrees) to this transform in place.\u001b[39;00m\n\u001b[0;32m 2015\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 2018\u001b[0m \u001b[39m and :meth:`scale`.\u001b[39;00m\n\u001b[0;32m 2019\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[1;32m-> 2020\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mrotate(math\u001b[39m.\u001b[39;49mradians(degrees))\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\transforms.py:2008\u001b[0m, in \u001b[0;36mAffine2D.rotate\u001b[1;34m(self, theta)\u001b[0m\n\u001b[0;32m 2005\u001b[0m b \u001b[39m=\u001b[39m math\u001b[39m.\u001b[39msin(theta)\n\u001b[0;32m 2006\u001b[0m rotate_mtx \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39marray([[a, \u001b[39m-\u001b[39mb, \u001b[39m0.0\u001b[39m], [b, a, \u001b[39m0.0\u001b[39m], [\u001b[39m0.0\u001b[39m, \u001b[39m0.0\u001b[39m, \u001b[39m1.0\u001b[39m]],\n\u001b[0;32m 2007\u001b[0m \u001b[39mfloat\u001b[39m)\n\u001b[1;32m-> 2008\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_mtx \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39;49mdot(rotate_mtx, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_mtx)\n\u001b[0;32m 2009\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39minvalidate()\n\u001b[0;32m 2010\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\n",
"File \u001b[1;32m<__array_function__ internals>:5\u001b[0m, in \u001b[0;36mdot\u001b[1;34m(*args, **kwargs)\u001b[0m\n",
"\u001b[1;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"# plot PCA\n",
"for color_key in key_list[1:]:\n",
" fig = plt.figure(figsize=(25,25))\n",
" for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" ax.imshow(X[:,i].reshape(20,20))\n",
" ax.set_xticks(np.arange(20)[::10])\n",
" ax.set_xticklabels(stim_val['phase'][::10])\n",
" ax.set_yticks(np.arange(20)[::10])\n",
" ax.set_yticklabels(stim_val['orientation'][::10])\n",
"\n",
" else:\n",
" ax.scatter(X[:,j], X[:,i], s=1, c=360*stim_val_pair[color_key]/stim_period[color_key], cmap=cmap_phase)\n",
" ax.set_xticks([])\n",
" ax.set_yticks([])\n",
"\n",
" fig.suptitle('PCA: 10 dimensions, color: '+color_key, y=0.9)\n",
" plt.subplots_adjust(hspace=0, wspace=0)\n",
" fig.savefig('embed10d_fig\\embed10d_pca_color_cyclic_'+color_key+'.png')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"n_neighbor_list = np.arange(5, 100, 5)\n",
"embed10d = {}"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"for n in n_neighbor_list: \n",
" embed10d[n] = UMAP(n_components=ncomp, init = xinit, n_neighbors = n, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(X_reduced)\n",
" \n",
" np.save('embed_umap_data\\embed10d_n_neighbors_%d'%n+'.npy', embed10d[n], allow_pickle=True)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"embed10d = {}\n",
"for n in n_neighbor_list: \n",
" embed10d[n] = np.load('embed_umap_data\\embed10d_n_neighbors_%d'%n+'.npy', allow_pickle=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for n in n_neighbor_list:\n",
" for color_key in key_list[1:]:\n",
" fig = plt.figure(figsize=(25,25))\n",
" for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" ax.imshow(embed10d[n][:,i].reshape(20,20))\n",
" ax.set_xticks(np.arange(20)[::10])\n",
" ax.set_xticklabels(stim_val['phase'][::10])\n",
" ax.set_yticks(np.arange(20)[::10])\n",
" ax.set_yticklabels(stim_val['orientation'][::10])\n",
"\n",
" else:\n",
" ax.scatter(embed10d[n][:,j], embed10d[n][:,i], s=1, c=360*stim_val_pair[color_key]/stim_period[color_key], cmap=cmap_phase)\n",
" ax.set_xticks([])\n",
" ax.set_yticks([])\n",
"\n",
" fig.suptitle('10 dimensions, n_neighbors:%d'%n + ', color: '+color_key, y=0.9)\n",
" plt.subplots_adjust(hspace=0, wspace=0)\n",
" fig.savefig('embed10d_fig\\embed10d_umap_n_%d'%n+'color_cyclic_'+color_key+'.png')"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image\n",
"\n",
"image = Image.open('embed10d_fig\\embed10d_umap_n_5color_cyclic_orientation.png')\n",
"image.show()"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABm0AAAZtCAYAAAAgnRAvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd3wc5YH/8c/MbF+tem8usuXei2zTTDMYQ6ghBUjlSELqJYQkd5d2uQSSXH53B0m4VHIhjUQBAsGA6dXGDffeJBdJVi+r7TO/PyRXyY0AXuPv+/Xal+XZnZlnnpnZmZ3vPM8YjuMgIiIiIiIiIiIiIiIip5d5ugsgIiIiIiIiIiIiIiIiCm1ERERERERERERERETSgkIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERERERERERERETSgEIbERERERERERERERGRNKDQRkREREREREREREREJA0otBEREREREREREREREUkDCm1ERERE5F3Btm3jzbx3tJaWloxQKHTvtdde+8Hf/OY3hZmZmXf95S9/ueytKeWbU1pa+rvi4uIbT2cZ3i4f+tCHvpeZmXnT7t27vcf73PXXX39fKBS6af/+/e7Dh7/wwgtZoVDoK3fddden396SHmLbtnHg9XbNY9iwYWWhUKhpyJAh1ts1j+PZuHFjUWZ
"text/plain": [
"<Figure size 2160x2160 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%pylab inline\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"img = mpimg.imread('embed10d_fig\\embed10d_umap_n_5color_cyclic_orientation.png')\n",
"fig = plt.figure(figsize=(30,30))\n",
"imgplot = plt.imshow(img)\n",
"ax = plt.gca()\n",
"ax.get_xaxis().set_visible(False)\n",
"ax.get_yaxis().set_visible(False)\n",
"# plt.subplots_adjust(left=-1, right=0.9, top=0.9, bottom=0.1)\n",
"plt.axis('off')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "04a7e5e5b7b64cb5874bc25a1f0436f7",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(RadioButtons(description='stimulus:', options=('orientation', 'phase'), value='orientati…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"@widgets.interact(color_key=widgets.RadioButtons(options=key_list[1:], description='stimulus:', disabled=False),\n",
" n=widgets.IntSlider(n_neighbor_list[-1], min=n_neighbor_list[0], max=n_neighbor_list[-1], step=5, description='n_neighbor', disabled=False))\n",
"# n = n_neighbor_list[2]\n",
"# color_key = 'orientation'\n",
"\n",
"\n",
"def umap_load_plot(color_key, n):\n",
"\n",
" \n",
"\n",
" # fig = plt.figure(figsize=(25,25))\n",
" # for i in range(ncomp):\n",
" # for j in range(ncomp):\n",
" # ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" # if i==j:\n",
" # ax.imshow(embed10d[n][:,i].reshape(20,20))\n",
" # ax.set_xticks(np.arange(20)[::10])\n",
" # ax.set_xticklabels(stim_val['phase'][::10])\n",
" # ax.set_yticks(np.arange(20)[::10])\n",
" # ax.set_yticklabels(stim_val['orientation'][::10])\n",
"\n",
" # else:\n",
" # ax.scatter(embed10d[n][:,j], embed10d[n][:,i], s=1, c=360*stim_val_pair[color_key]/stim_period[color_key], cmap=cmap_phase)\n",
" # ax.set_xticks([])\n",
" # ax.set_yticks([])\n",
"\n",
"\n",
" # fig.suptitle('10 dimensions, n_neighbors:%d'%n + ', color: '+color_key, y=0.9)\n",
" # plt.subplots_adjust(hspace=0, wspace=0)\n",
" # plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"for n in n_neighbor_list:\n",
" embed10d[n] = pd.DataFrame(embed10d[n])"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [],
"source": [
"os.mkdir('persistence_umap10d')"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcEAAAGwCAYAAADRxd6MAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABWPUlEQVR4nO3deVhUZf8/8PcwwLAJLsimuO8bJAphlhuGGKQ+lkumaKk9lf0q6jF9KrXlCbU0My375t7ivpUaJaNoKmkCbrkrihvgxg4DzJzfHyMDIzOsM3Nmeb+ua66Y+9znzGcmmLfnnPucWyIIggAiIiIbZCd2AURERGJhCBIRkc1iCBIRkc1iCBIRkc1iCBIRkc1iCBIRkc1iCBIRkc2yF7sAc6RSqXDr1i00aNAAEolE7HKIiKiWBEFAbm4u/Pz8YGenf3+PIajDrVu34O/vL3YZRERUT9evX0fz5s31LmcI6tCgQQMA6g/P3d1d5GqIiKgmEhISMGrUKCgUCgwaNAhyuVzzfa4PQ1CHskOg7u7uDEEiIguiUqkQGRmJlStXwsvLq9pTWgxBIiKyCs8++ywSEhIQFBQEhUJRo3U4OpSIiCxWQkICrly5onnep08fyGSyGq/PECQiIoskl8sRERGB/v374/r163XaBkOQiIgsjlwuR2RkJIqKihAQEAAvL686bYchSEREFqViAEZGRmLz5s21OgRaEUOQiIgshiEDEGAIEhGRhTh48KBBAxDgJRJERGQhOnXqhPbt26Nly5YGCUCAIUhERBbC09MT+/btg5ubm0ECEODhUCIiMmNyuRzff/+95nmTJk0MFoAA9wSJiMhMVRwE06xZMwwdOtTgr8E9QSIiMjuPjgIdNGiQUV6He4IiU6oExJ/NwIX0XHRv7oGn2jeFnR3nMCQi22XoyyCqwhAUUVGJEhNWHMXRq/c1bWGdvfDd+F6QMgiJyAaZMgABhmCV8vPzIZVKK7VLpVI4OTlp9dPHzs4Ozs7OOvuu/zsNf124Vd5ZIkH82UzsOZOOId18UVBQAEEQdG5XIpHAxcVF87w2fQsLC6FSqfTW7OrqWqe+RUVFUCqVBunr4uKimQJFoVCgtLTUIH2dnZ01s0wXFxejpKTEIH2dnJw0vyu16VtSUoLi4mK9fWUyGezt7Wvdt7S0tMq76Ds6OsLBwaHWfZVKJYqKivT2dXBwgKOjY637qlQqFBYWGqSvvb295ktTEAQUFBQYpG9t/u4N9R1RXV9r+47IyMjQBGBERATWrFmD0tJSnX/T1f3dV/U5ahGokuzsbAGA3sfQoUO1+ru4uOjt269fP62+np6eevs6+rQXWr63U/jfrjOCIAhCy5Yt9fbt0qWL1na7dOmit2/Lli21+vbq1UtvX09PT62+/fr109vXxcVFq+/QoUOr/Nwqeu6556rsm5eXp+kbHR1dZd/MzExN39dee63KvqmpqZq+7777bpV9T58+rek7e/bsKvsePXpU03f+/PlV9t23b5+m75IlS6rsu3PnTk3fVatWVdl348aNmr4bN26ssu+qVas0fXfu3Fll3yVLlmj67tu3r8q+8+fP1/Q9evRolX1nz56t6Xv69Okq+7777ruavqmpqVX2fe211zR9MzMzq+wbHR2t6ZuXl1dl3+eee07rd7iqvsb6jujVq5dWX2v7jlCpVMKsWbOEyMhI4V//+leVfWv6HZGdnS1UhQNjzFBrT9fqOxERWRmJRII5c+Zg27ZtmqMwRn/Nh/+ioQpycnLg4eGBW7du6ZxZ3lCHOu7lKfD8ssO4nf3wUJREgg7NmuCXaU/AxdHe6g518HBo5b48HMrDobZ+OHTfvn1YsmQJfvjhBzRt2rTKvhVV93efk5MDPz8/ZGdn6/weL8MQ1KEsBKv78AwhM7cIaw5fxYWMPHRv5oHo0FbwcHEw6msSEZmDioNgZs+ejTlz5hhs2zX9HmcI6mDKECQiskXGHgVa0+9xnhMkIiKTMvVlEFVhCBIRkcmYUwACDEEiIjKRoqIiREdHm00AAgxBIiIyEScnJ/zyyy8YP368WQQgwIExOnFgDBGR4RQUFGhdgmEKHBhDRESii4+PR5s2bZCYmCh2KToxBImIyCji4+MRFRWFjIwMfP3112KXoxNDkIiIDK4sAMsGwaxatUrsknRiCBIRkUE9GoDmMghGF4YgEREZjCUFIMAQJCIiA/r2228tJgABhiARERnQTz/9hE8//dQiAhBgCBIRUT1duHBBM02Tk5MT3n//fYsIQIAhSERE9SCXyxEQEIB3331X73yF5kzUEDxw4ACioqLg5+cHiUSC7du3V9l/4sSJkEgklR5du3bV9JkzZ06l5Z06dTLyOyEisj0Vb4Z94cKFKie0NleihmB+fj4CAgKwdOnSGvX/6quvcPv2bc3j+vXraNy4MZ5//nmtfl27dtXqd/DgQWOUT0Rks3TNBuHgYHkTgtuL+eIRERGIiIiocX8PDw94eHhonm/fvh0PHjzApEmTtPrZ29vDx8fHYHUSEVE5c5sOqT4s+pzgihUrEBYWhpYtW2q1X7x4EX5+fmjTpg3GjRuHtLS0KrejUCiQk5Oj9SAiosqsKQABCw7BW7du4bfffsPkyZO12kNCQrB69WrExcXh22+/RWpqKp588knk5ubq3VZsbKxmL9PDwwP+/v7GLp+IyCLdunULCoXCKgIQMKOplCQSCbZt24bhw4fXqH9sbCwWLFiAW7duwdHRUW+/rKwstGzZEgsXLsTLL7+ss49CoYBCodA8z8nJgb+/P6dSIiLSYc+ePXjqqafMOgBrOpWSqOcE60oQBKxcuRLjx4+vMgABoGHDhujQoQMuXbqkt49MJjPr/5lERGI6cOAA2rdvD19fXwDA4MGDRa7IcCzycOj+/ftx6dIlvXt2FeXl5eHy5cua/3lERFRzcrkc4eHhGDhwIDIzM8Uux+BEDcG8vDwcP34cx48fBwCkpqbi+PHjmoEsM2fOxIQJEyqtt2LFCoSEhKBbt26Vlr377rvYv38/rl69isOHD2PEiBGQSqUYO3asUd8LEZG1qTgIpl27dlqj862FqIdDjx07hgEDBmiex8TEAACio6OxevVq3L59u9LIzuzsbGzZsgVfffWVzm3euHEDY8eOxb1799C0aVP07dsXf/31F5o2bWq8N0JEZGWsbRSoPmYzMMac1PSEKhGRNbKGAKzp97hFnhMkIiLj2L9/v8UHYG1Y5OhQIiIyjrZt26JZs2bo3Lmz1QcgwBAkIqIKmjdvjoMHD6JRo0ZWH4AAD4cSEdk8uVyOTZs2aZ77+PjYRAAC3BMkIrJpZYNgSkpK4OXlhX79+oldkklxT5DInBTnA7kZYldBNqLiKNCIiAg8/vjjYpdkctwTJDIHKiXw+/tA0mqgtBDw6QEM/wbw6S52ZWSlrOEyCEPgniCROTi8GDjyrToAASD9JPDTKEBZIm5dZJUYgOUYgkTm4OSmym25t4DUA6avhaza2bNnGYAV8HAokTmQSGrXTlRHnTp1wksvvYS0tDSbD0CAIUhkHgLGAn+8r93m4Q+0ekqceshqSSQSLFmyBCUlJdVORWcLeDiUyBw8/hrwxFuAYwP18+bBwLhNgJT/TqX6k8vlGDduHIqLiwGog5ABqMa/MCJzYGcHDP4IGPA+UFIAODcUuyKyEhUHwQQEBGD69Olil2RWGIJE5sTeUf0gMoBHR4G++eabYpdkdng4lIjICvEyiJphCBIRWRkGYM0xBImIrEheXh7GjBnDAKwhhiARkRVxc3PD5s2bMXr0aAZgDUgEQRDELsLc5OTkwMPDA9nZ2XB3dxe7HCKiaikUCgZeBTX9HueeIBGRhZPL5ejQoQNOnToldikWhyFIRGTBygbBpKWlYcGCBWKXY3EYgkREFurRUaDfffed2CVZHIYgEZEF4mUQhsEQJCKyMAxAw2EIEhFZEEEQMHfuXAaggTAEiYgsiEQiwdatW/Hf//6XAWgADEEiIgtw9epVzc8NGjTA//73PwagATAEiYjMXHx8PDp37ozPPvtM7FKsDkOQiMiMxcfHIyoqCkVFRUhMTIRSqRS
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcEAAAGwCAYAAADRxd6MAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABYHUlEQVR4nO3deVxU9f4/8NcwwAAiiCKrKCqKOyQmaQuaGC7gUrnlVbTSbt36VmSm3dKye9NMrbxa+nNDs1wzrTRKRslUkgTNfcedxY19nzm/P04MjDODLDNzZpjX8/GYx3U+85lz3jPX5uU553M+H5kgCAKIiIhskJ3UBRAREUmFIUhERDaLIUhERDaLIUhERDaLIUhERDaLIUhERDaLIUhERDbLXuoCLJFarcbNmzfRtGlTyGQyqcshIqI6EgQB+fn58PPzg52d4eM9hqAeN2/eREBAgNRlEBFRA127dg2tWrUy+DpDUI+mTZsCEL88Nzc3iashIqLaSEpKwujRo1FaWooBAwZAqVRqfs8NYQjqUXkK1M3NjSFIRGRF1Go1oqOjsXr1anh5eT3wkhZDkIiIGoVhw4YhKSkJYWFhKC0trdV7ODqUiIisVlJSEi5duqR53rdvXygUilq/nyFIRERWSalUYvDgwejXrx+uXbtWr20wBImIyOoolUpER0ejpKQEISEh8PLyqtd2GIJERGRVqgdgdHQ0tm7dWqdToNUxBImIyGoYMwABhiAREVmJ/fv3GzUAAd4iQUREVqJTp07o0KED2rRpY5QABBiCRERkJTw9PbF37164uroaJQABng4lIiILplQqsWLFCs3zFi1aGC0AAR4JEhGRhao+CMbf3x9Dhgwx+j54JEhERBbn/lGgAwYMMMl+eCQoMZVaQOLpLJzLzEf3Vu54okNL2NlxDUMisl3Gvg2iJgxBCZWUqzBxVQpSLt/VtEV29sLyCb0gZxASkQ0yZwACDMEaFRYWQi6X67TL5XI4OTlp9TPEzs4Ozs7Oevtu/PMq/jh3s6qzTIbE09nYfSoTg7r5oqioCIIg6N2uTCaDi4uL5nld+hYXF0OtVhusuUmTJvXqW1JSApVKZZS+Li4umiVQSktLUVFRYZS+zs7OmlWmy8rKUF5ebpS+Tk5Omr8rdelbXl6OsrIyg30VCgXs7e3r3LeioqLGWfQdHR3h4OBQ574qlQolJSUG+zo4OMDR0bHOfdVqNYqLi43S197eXvOjKQgCioqKjNK3Lv/dG+s34kF9G9tvRFZWliYABw8ejLVr16KiokLvf9MP+u++pu9Ri0A6cnNzBQAGH0OGDNHq7+LiYrBvRESEVl9PT0+DfR19Oght3vlJ+O/OU4IgCEKbNm0M9u3SpYvWdrt06WKwb5s2bbT69urVy2BfT09Prb4REREG+7q4uGj1HTJkSI3fW3XPPvtsjX0LCgo0fWNjY2vsm52dren7yiuv1Ng3PT1d03fatGk19j1x4oSm7+zZs2vsm5KSouk7f/78Gvvu3btX03fJkiU19v3pp580fdesWVNj382bN2v6bt68uca+a9as0fT96aefauy7ZMkSTd+9e/fW2Hf+/PmavikpKTX2nT17tqbviRMnauw7bdo0Td/09PQa+77yyiuavtnZ2TX2jY2N1fQtKCiose+zzz6r9Xe4pr6m+o3o1auXVt/G9huhVquFWbNmCdHR0cLTTz9dY9/a/kbk5uYKNeHAGAvU1rPJgzsRETUyMpkMH3zwAb7//nvNWRiT7/Pvf9FQNXl5eXB3d8fNmzf1rixvrFMddwpKMWrZQWTk/n0qSiZDR/8W+OHVR+HiaN/oTnXwdKhuX54O5elQWz8dunfvXixZsgRff/01WrZsWWPf6h70331eXh78/PyQm5ur93e8EkNQj8oQfNCXZwzZ+SVYe/AyzmUVoLu/O2L7BMLdxcGk+yQisgTVB8HMnj0bH3zwgdG2XdvfcYagHuYMQSIiW2TqUaC1/R3nNUEiIjIrc98GUROGIBERmY0lBSDAECQiIjMpKSlBbGysxQQgwBAkIiIzcXJywg8//IAJEyZYRAACHBijFwfGEBEZT1FRkdYtGObAgTFERCS5xMREtGvXDsnJyVKXohdDkIiITCIxMRExMTHIysrC//73P6nL0YshSERERlcZgJWDYNasWSN1SXoxBImIyKjuD0BLGQSjj6QhuG/fPsTExMDPzw8ymQzbt2+vsf+kSZMgk8l0Hl27dtX0+eCDD3Re79Spk4k/CRERAdYVgIDEIVhYWIiQkBAsXbq0Vv2/+OILZGRkaB7Xrl1D8+bNMWrUKK1+Xbt21eq3f/9+U5RPRET3+eqrr6wmAAGJF9UdPHgwBg8eXOv+7u7ucHd31zzfvn077t27h8mTJ2v1s7e3h4+PT623W1paqjWLfl5eXq3fS0REVb755hssXLgQ06ZNs/gABKz8muCqVasQGRmJNm3aaLWfP38efn5+aNeuHcaPH4+rV6/WuJ25c+dqAtbd3R0BAQGmLJuIqFE5d+6cZpkmJycn/Pvf/7aKAASsOARv3ryJn3/+GS+++KJWe3h4OOLj45GQkICvvvoK6enpePzxx5Gfn29wWzNnzkRubq7mce3aNVOXT0TUKCiVSoSEhGDatGkG1yu0ZJKeDm2ItWvXolmzZhgxYoRWe/XTqz169EB4eDjatGmDzZs344UXXtC7LYVCYTX/aiEishTVJ8M+d+4cKioqNAswWwurPBIUBAGrV6/GhAkTNKtNG9KsWTN07NgRFy5cMFN1RESNn77VIKwtAAErDcHffvsNFy5cMHhkV11BQQEuXrwIX19fM1RGRNT4WdpySA0haQgWFBTg6NGjOHr0KAAgPT0dR48e1QxkmTlzJiZOnKjzvlWrViE8PBzdunXTeW3atGn47bffcPnyZRw8eBAjR46EXC7HuHHjTPpZiIhsQWMKQEDia4KHDx9G//79Nc/j4uIAALGxsYiPj0dGRobOyM7c3Fx89913+OKLL/Ru8/r16xg3bhzu3LmDli1b4rHHHsMff/yBli1bmu6DEBHZiJs3b6K0tLRRBCDApZT04lJKRESG7d69G0888YRFByCXUiIiIqPYt28fMjIyNM8HDhxo0QFYFwxBIiIySKlUIioqCk8++SSys7OlLsfoGIJERKRX9UEwQUFBWtNWNhYMQSIi0tHYRoEawhAkIiItthKAAEOQiIiq+e2332wmAAErnjuUiIiMr3379vD390fnzp0bfQACDEEiIqqmVatW2L9/Pzw8PBp9AAI8HUpEZPOUSiW2bNmiee7j42MTAQjwSJCIyKZVDoIpLy+Hl5cXIiIipC7JrHgkSGQKBdlAqeGFnIksQfVRoIMHD8YjjzwidUlmxyNBImO6fR74/p/AjcOA3BEIGQcMWQDY17zuJZG52dJtEDXhkSCRsQgCsGGsGIAAoCoD0tYCv82Tti6i+zAAqzAEiYzlRipw54Ju+1+bzF8LkQGnT59mAFbD06FExiKTGWjnvzXJcnTq1AnPP/88rl69avMBCDAEiYzHryfQshNw64x2e+g4aeoh0kMmk2HJkiUoLy+HoyOvVfOfqETGIpMB4zYAgY+Lzx1cgPB/Ak+8LW1dZPOUSiXGjx+PsrIyAGIQMgBFPBIkMqbm7YBJPwEluYC9E2Bv26eaSHrVB8GEhIRg+vTpUpdkURiCRKbg1PjWXSPrc/8o0Ndff13qkiwOT4cSETVCvA2idhiCRESNDAOw9hiCRESNSEFBAcaOHcsArCWGIBFRI+Lq6oqtW7dizJgxDMBakAmCIEhdhKXJy8uDu7s7cnNz4ebmJnU5RERVriQDGUcBry5A2yc0kzSUlpYy8Kqp7e84jwSJiKyBWg1smQysGQQkzADWDQO+GQWoyqFUKtGxY0ccP35c6iqtDkOQiMganEsATm7TbruwG8oVsxAdHY2rV69i4cKF0tRmxRiCRETW4MoBnSblpQpEv/6pZhDM8uXLJSjMuvFmeSIia+ARqPVUeakC0RuKUFIBjgJtAB4JEhFZgx6jgWZtANwXgIMGMgAbgCFIRGQNnNyBF3ZD6PMa5qW6iAE
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAG2CAYAAADyYrYhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABbD0lEQVR4nO3dd3xT5f4H8E+atumii9IFhRaBsltZFRwFKZTRShFZerWgwnVwf2LlongFxFVFRUTQepXpYAsocFEaKAgUEMqUDYUyOljdNG2T8/vj0LShSRdJTtJ83q9XXpc8ec7JN7mYD+ec5zyPTBAEAURERFQjO6kLICIisgYMTCIiojpgYBIREdUBA5OIiKgOGJhERER1wMAkIiKqAwYmERFRHTAwiYiI6oCBSUREVAcMTCIiojqQNDATExPRs2dPNGnSBL6+voiLi8Pp06dr3W716tVo3749nJyc0KVLF2zevFnndUEQMGPGDAQEBMDZ2RlRUVE4e/asqT4GERHZAEkDc8eOHXj11Vexd+9ebN26FWVlZRg4cCCKiooMbrNnzx6MHTsWL7zwAg4dOoS4uDjExcXh+PHj2j6zZ8/GvHnzkJSUhH379sHV1RXR0dEoKSkxx8ciIqJGSGZJk69fv34dvr6+2LFjBx577DG9fUaPHo2ioiJs3LhR2/bQQw8hPDwcSUlJEAQBgYGBeOONNzBlyhQAQF5eHvz8/LBkyRKMGTPGLJ+FiIgaF3upC6gqLy8PAODt7W2wT2pqKhISEnTaoqOjsX79egBAeno6srKyEBUVpX3dw8MDERERSE1N1RuYKpUKKpVK+1yj0eDWrVto2rQpZDLZ/XwkIiKSgCAIKCgoQGBgIOzsjHMy1WICU6PRYPLkyXj44YfRuXNng/2ysrLg5+en0+bn54esrCzt6xVthvrcKzExEbNmzbqf8omIyAJdvnwZLVq0MMq+LCYwX331VRw/fhy7du0y+3tPmzZN56g1Ly8PLVu2xOXLl+Hu7m72eoiIqP5SUlIwatQoqFQq9O/fH0qlEk2aNDHa/i0iMCdNmoSNGzdi586dtf5LwN/fH9nZ2Tpt2dnZ8Pf3175e0RYQEKDTJzw8XO8+FQoFFApFtXZ3d3cGJhGRFdFoNIiJicGiRYvg6+tr1Mtqko6SFQQBkyZNwrp167Bt2zaEhITUuk3v3r2hVCp12rZu3YrevXsDAEJCQuDv76/TJz8/H/v27dP2ISKixueJJ55ASkoK1qxZo/cg6H5JeoT56quv4ueff8aGDRvQpEkT7TVGDw8PODs7AwCee+45NG/eHImJiQCA1157DZGRkfj8888xdOhQrFixAgcOHMB///tfAIBMJsPkyZPxwQcfoG3btggJCcH06dMRGBiIuLg4ST4nERGZRkpKClq2bInWrVsDAPr06QMAOgM5jUaQEAC9j8WLF2v7REZGCvHx8TrbrVq1SmjXrp3g6OgodOrUSdi0aZPO6xqNRpg+fbrg5+cnKBQKoX///sLp06frXFdeXp4AQMjLy7ufj0dERCaUnJwsODk5CUFBQUJGRobOa6b4Hbeo+zAtRX5+Pjw8PJCXl8drmEREFkipVCImJgYlJSWIiYmpdhrWFL/jnEuWiIisSm1haSoMTCIishpShSXAwCQiIiuxa9cuycISsJD7MImIiGrTvn17tG3bFq1atTJ7WAIMTCIishI+Pj7Yvn073NzczB6WAE/JEhGRBVMqlfjuu++0z5s2bSpJWAI8wiQiIgtVdYBP8+bNMWTIEEnr4REmERFZnHtHw/bv31/qkniEKTW1RkDyyWycySpAlxYeeKxtM9jZcQ1OIrJdUt46UhMGpoRKytR4buF+7L94S9sW1cEX3z7bA3KGJhHZIEsNS4CBWaOioiLI5fJq7XK5HE5OTjr9DLGzs9NOJH9v3xV/ZWDvmWuVnWUyJJ/MwdYTWRjUOQDFxcUwNHOhTCaDi4uL9nl9+t65cwcajcZgza6urg3qW1JSArVabZS+Li4u2mV5VCoVysvLjdLX2dlZu/p6aWkpysrKjNLXyclJ+3elPn3LyspQWlpqsK9CoYC9vX29+5aXl9c4+bSjoyMcHBzq3VetVqOkpMRgXwcHBzg6Ota7r0ajwZ07d4zS197eXvsDKwgCiouLjdK3Pv/dG+s3ora+je03Ijs7WxuWgwcPxtKlS1FeXq73v+na/ruv6XtsMKPNStuIVEzaa+gxZMgQnf4uLi4G+0ZGRur09fHxMdjX0b+t0OrNjcKHm04IgiAIrVq1Mti3Y8eOOvvt2LGjwb6tWrXS6dujRw+DfX18fHT6RkZGGuzr4uKi03fIkCE1fm9VPfXUUzX2LSws1PaNj4+vsW9OTo627yuvvFJj3/T0dG3fKVOm1Nj3+PHj2r4zZ86sse/+/fu1fWfPnl1j3+3bt2v7zp8/v8a+Gzdu1PZdvHhxjX1XrVql7btq1aoa+1Zd4GDjxo019p0/f7627/bt22vsO3v2bG3f/fv319h35syZ2r7Hjx+vse+UKVO0fdPT02vs+8orr2j75uTk1Ni36sIOhYWFNfZ96qmndP4O19TXVL8RPXr00Onb2H4jNBqNMGPGDCEmJkZ48skna+xb198IY06+zkE/FijEx7X2TkREjYxMJsO7776LdevWac/uWBKuVqJHxSz3165d0zvLvbFOt9wsVGFk0h5k5t09HSaToV3zpvh10sNwcbRvdKdbeEq2el+ekuUpWVs/Jbt9+3bMnz8fP/zwA5o1a1Zj36pq++8+Pz8fgYGBRl2thIGphzmX98opKMHSPRdxJrsQXZp7IL53MDxcHEz6nkRElqDqAJ+ZM2fi3XffNdq+TfE7zsDUg+thEhGZlqlHw3I9TCIisnqWfOtITRiYRERkNtYalgADk4iIzKSkpATx8fFWGZYAA5OIiMzEyckJv/76K5599lmrC0uAg3704qAfIiLjKS4u1rltxRw46IeIiKxKcnIyWrdujdTUVKlLuW8MTCIiMonk5GTExsYiOzsbX331ldTl3DcGJhERGV1FWFYM8Fm8eLHUJd03BiYRERnVvWFpjQN89GFgEhGR0TTWsAQYmEREZETffPNNowxLgIFJRERG9NNPP+GDDz5odGEJMDCJiOg+nTlzRrt0mJOTE/7zn/80urAEGJhERHQflEolwsLCMGXKFIPrbTYWDEwiImqQqhOpnzlzpsbF2xsDBiYREdWbvlVHHBwcpC7LpCQNzJ07dyI2NhaBgYGQyWRYv359jf3HjRsHmUxW7dGpUydtn3fffbfa6+3btzfxJyEish3WvETX/ZA0MIuKihAWFoYFCxbUqf+XX36JzMxM7ePy5cvw9vbGyJEjdfp16tRJp9+uXbtMUT4Rkc2x1bAEAHsp33zw4MEYPHhwnft7eHjAw8ND+3z9+vW4ffs2xo8fr9PP3t4e/v7+RquTiIhE165dg0qlsrmwBCQOzPu1cOFCREVFoVWrVjrtZ8+eRWBgIJycnNC7d28kJiaiZcuWBvejUqmgUqm0z/Pz801WMxGRNXv22Wfh7++Pxx57zKbCErDiQT/Xrl3D//73P7z44os67REREViyZAm2bNmCb775Bunp6Xj00UdRUFBgcF+JiYnao1cPDw8EBQWZunwiIquxc+dOZGZmap8PGDDA5sISsOLAXLp0KTw9PREXF6fTPnjwYIwcORJdu3ZFdHQ0Nm/ejNzcXKxatcrgvqZNm4a8vDzt4/LlyyaunojIOiiVSkRHR+Pxxx9HTk6O1OVIyipPyQqCgEWLFuHZZ5+Fo6NjjX09PT3Rrl07nDt3zmAfhUJhk/9aIiKqSdUBPm3atNEZQ2KLrPIIc8eOHTh37hxeeOGFWvsWFhbi/PnzCAgIMENlRESNgy2PhjVE0sAsLCzE4cOHcfjwYQBAeno6Dh8+jIyMDADiqdLnnnuu2nYLFy5EREQEOnfuXO21KVOmYMeOHbh48SL27NmD4cOHQy6XY+zYsSb9LEREjQXDUj9JT8keOHAA/fr10z5PSEgAAMTHx2PJkiXIzMzUhmeFvLw8rF27Fl9++aXefV65cgVjx47FzZs
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcEAAAGwCAYAAADRxd6MAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABYhUlEQVR4nO3deVxU5f4H8M8wwACyiCKbouKGK6CYpOVVE0MMUrNcMkVb7Gr1y0tlem9p200rKzMtu+62uJstGhWTaCpJirjkLiioLKKy7zPn98eJkYEZ1pk5M8zn/XrNK+eZ55z5zqR8OOc853lkgiAIICIiskI2UhdAREQkFYYgERFZLYYgERFZLYYgERFZLYYgERFZLYYgERFZLYYgERFZLVupCzBHarUaN27cgIuLC2QymdTlEBFRIwmCgIKCAvj6+sLGRv/xHkNQhxs3bsDPz0/qMoiIqJnS09PRoUMHva8zBHVwcXEBIH55rq6uEldDREQNER8fj4kTJ6KsrAwjR46EUqnU/DzXhyGoQ9UpUFdXV4YgEZEFUavViIyMxLp16+Dp6VnvJS2GIBERtQgPP/ww4uPjERISgrKysgZtw9GhRERkseLj45GSkqJ5PmTIECgUigZvzxAkIiKLpFQqERERgeHDhyM9Pb1J+2AIEhGRxVEqlYiMjERpaSmCgoLg6enZpP0wBImIyKJUD8DIyEjs2LGjUadAq2MIEhGRxTBkAAIMQSIishAHDx40aAACvEWCiIgsRM+ePdG9e3d06tTJIAEIMASJiMhCeHh4YN++fXB2djZIAAI8HUpERGZMqVRi9erVmudt27Y1WAACPBIkIiIzVX0QTPv27TFmzBiDvwePBImIyOzUHAU6cuRIo7wPjwQlplILiDubhQuZBejXwQ3/6N4ONjZcw5CIrJehb4OoC0NQQqUVKkxfm4jEK7c1bWG9PPHFtIGQMwiJyAqZMgABhmCdioqKIJfLa7XL5XI4ODho9dPHxsYGjo6OOvtu+TMNf1y4cbezTIa4s9n49UwmRvf1QXFxMQRB0LlfmUwGJycnzfPG9C0pKYFardZbc6tWrZrUt7S0FCqVyiB9nZycNEuglJWVobKy0iB9HR0dNatMl5eXo6KiwiB9HRwcNH9XGtO3oqIC5eXlevsqFArY2to2um9lZWWds+jb29vDzs6u0X1VKhVKS0v19rWzs4O9vX2j+6rVapSUlBikr62treaHpiAIKC4uNkjfxvy7N9TPiPr6trSfEVlZWZoAjIiIwMaNG1FZWanz33R9/+7r+h61CFRLXl6eAEDvY8yYMVr9nZyc9PYdNmyYVl8PDw+9fe29uwudXv1R+O+eM4IgCEKnTp309u3du7fWfnv37q23b6dOnbT6Dhw4UG9fDw8Prb7Dhg3T29fJyUmr75gxY+r83qp79NFH6+xbWFio6RsdHV1n3+zsbE3fOXPm1Nk3NTVV0/fll1+us+/p06c1fRctWlRn38TERE3f999/v86++/bt0/RdsWJFnX1//PFHTd/169fX2Xfbtm2avtu2bauz7/r16zV9f/zxxzr7rlixQtN33759dfZ9//33NX0TExPr7Lto0SJN39OnT9fZ9+WXX9b0TU1NrbPvnDlzNH2zs7Pr7BsdHa3pW1hYWGffRx99VOvvcF19jfUzYuDAgVp9W9rPCLVaLSxcuFCIjIwUHnnkkTr7NvRnRF5enlAXDowxQ/4erervRETUwshkMrzxxhv49ttvNWdhjP6ef/9GQ9Xk5+fDzc0NN27c0LmyvKFOddwqLMNjqw4jI+/vU1EyGXq0b4vvn78PTva2Le5UB0+H1u7L06E8HWrtp0P37duHFStW4Msvv0S7du3q7Ftdff/u8/Pz4evri7y8PJ0/x6swBHWoCsH6vjxDyC4oxcbDV3AhqxD92rshenBnuDnZGfU9iYjMQfVBMIsWLcIbb7xhsH039Oc4Q1AHU4YgEZE1MvYo0Ib+HOc1QSIiMilT3wZRF4YgERGZjDkFIMAQJCIiEyktLUV0dLTZBCDAECQiIhNxcHDA999/j2nTpplFAAIcGKMTB8YQERlOcXGx1i0YpsCBMUREJLm4uDh06dIFCQkJUpeiE0OQiIiMIi4uDlFRUcjKysKnn34qdTk6SRqCBw4cQFRUFHx9fSGTybB79+46+8+YMQMymazWo0+fPpo+b7zxRq3Xe/bsaeRPQkRE1VUFYNUgmPXr10tdkk6ShmBRURGCgoKwcuXKBvX/5JNPkJGRoXmkp6ejTZs2eOyxx7T69enTR6vfwYMHjVE+ERHpUDMAzWUQjC6SLqUUERGBiIiIBvd3c3ODm5ub5vnu3btx584dzJw5U6ufra0tvL29G7zfsrIyrbkT8/PzG7wtERHdZUkBCFj4NcG1a9ciLCwMnTp10mq/ePEifH190aVLF0ydOhVpaWl17mfx4sWagHVzc4Ofn58xyyYiarE+//xziwlAwIJD8MaNG/jpp5/w9NNPa7WHhoZiw4YNiI2Nxeeff47U1FQMHToUBQUFeve1YMEC5OXlaR7p6enGLp+IqEX6+uuv8c4771hEAAIWvLL8xo0b0bp1a4wbN06rvfrp1cDAQISGhqJTp07Ytm0bnnrqKZ37UigUFvE/i4jIHF24cAHdu3eHTCaDg4MD/vOf/0hdUoNZ5JGgIAhYt24dpk2bplljTJ/WrVujR48euHTpkomqIyKyHkqlEkFBQXj55Zf1rldoziwyBPfv349Lly7pPbKrrrCwEJcvX4aPj48JKiMish7VJ8O+cOFCnQtamytJQ7CwsBDJyclITk4GAKSmpiI5OVkzkGXBggWYPn16re3Wrl2L0NBQ9O3bt9ZrL7/8Mvbv348rV67g8OHDGD9+PORyOaZMmWLUz0JEZE10rQZhZ2d5C4JLek3w6NGjGDFihOZ5TEwMACA6OhobNmxARkZGrZGdeXl52LlzJz755BOd+7x27RqmTJmCW7duoV27drj//vvxxx9/oF27dsb7IEREVsTclkNqDk6grQMn0CYi0s1SApATaBMRkcHduHEDZWVlZh2AjWGxt0gQEZHpTZs2Dd7e3vjHP/5h8QEI8EiQiIjqceDAAWRkZGiejxo1qkUEIMAQJCKiOiiVSoSHh+OBBx5Adna21OUYHEOQiIh0qj4Iplu3bloLGLQUDEEiIqrFUkaBNhdDkIiItFhLAAIMQSIiqmb//v1WE4AAb5EgIqJqunbtivbt26NXr14tPgABhiAREVXToUMHHDx4EO7u7i0+AAGeDiUisnpKpRLbt2/XPPf29raKAAR4JEhEZNWqBsFUVFTA09MTw4YNk7okk+KRIFF9VBVA/g1ArZK6EiKDqj4KNCIiAvfee6/UJZkcjwSJ6nJsI/Db20DRTcDFFwh/B+g7QeqqiJrNmm6DqAuPBIn0STsC/PB/YgACQMENYOczQPZZaesiaiYG4F0MQSJ9Tm2r3SaogFM7TF8LkYGcPXuWAVgNT4cS6SPT8zuivnYiC9CzZ088+eSTSEtLs/oABBiCRPoFTgYSVwMQ7rbZ2AL9HpOsJKLmkslkWLFiBSoqKmBvby91OZLjr7RE+nQIAcZ/Abi2F5+7dwYe2wC06yFlVUSNplQqMXXqVJSXlwMQg5ABKOKRIFFdgiaJR36luYCjOyCTSV0RUaNUHwQTFBSEefPmSV2SWWEIEtXHxgZwaiN1FUSNVnMU6Isvvih1SWaHp0OJiFog3gbRMAxBIqIWhgHYcAxBIqIWpLCwEJMnT2YANhBDkIioBXF2dsaOHTswadIkBmADyARBEOrvZl3y8/Ph5uaGvLw8uLq6Sl0OEVG9ysrKGHjVNPTnOI8EiYgsnFKpRI8ePXDq1CmpS7E4DEEiIgtWNQgmLS0NH374odTlWByGIBGRhao5CvSLL76QuiSLwxAkIrJAvA3CMBiCREQWhgFoOAxBIiILIggClixZwgA0EIYgEZEFkclk2LVrF/79738zAA1A0hA8cOAAoqKi4OvrC5lMht27d9fZPz4+HjKZrNYjMzNTq9/KlSvRuXNnODg4IDQ0FImJiUb8FERExnflyhX
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"for n in n_neighbor_list:\n",
" persistence(embed10d[n],homdim=1,coeff=23, save_path='persistence_umap10d/persistence_n%d'%n+'_')"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'cohomological_parameterization' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mc:\\Users\\arash\\Documents\\Uni\\Research Project (Topology)\\staticgrating-phasefreq-topology\\05_Dimensionality_Reduction.ipynb Cell 22'\u001b[0m in \u001b[0;36m<cell line: 6>\u001b[1;34m()\u001b[0m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000024?line=2'>3</a>\u001b[0m embed10d_df[n] \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mDataFrame(embed10d[n])\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000024?line=4'>5</a>\u001b[0m n \u001b[39m=\u001b[39m \u001b[39m95\u001b[39m\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000024?line=5'>6</a>\u001b[0m decoding1 \u001b[39m=\u001b[39m cohomological_parameterization(embed10d_df[n], coeff\u001b[39m=\u001b[39m\u001b[39m23\u001b[39m)\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000024?line=6'>7</a>\u001b[0m \u001b[39mfor\u001b[39;00m key \u001b[39min\u001b[39;00m key_list[\u001b[39m1\u001b[39m:]:\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000024?line=7'>8</a>\u001b[0m decoding1[key] \u001b[39m=\u001b[39m stim_val_pair[key][decoding1\u001b[39m.\u001b[39mindex]\n",
"\u001b[1;31mNameError\u001b[0m: name 'cohomological_parameterization' is not defined"
]
}
],
"source": [
"embed10d_df = {}\n",
"for n in n_neighbor_list:\n",
" embed10d_df[n] = pd.DataFrame(embed10d[n])\n",
"\n",
"n = 95\n",
"decoding1 = cohomological_parameterization(embed10d_df[n], coeff=23)\n",
"for key in key_list[1:]:\n",
" decoding1[key] = stim_val_pair[key][decoding1.index]\n",
"\n",
"def phasor_avg(x, period):\n",
" return np.angle(np.sum(np.exp(2*np.pi*1j*x/period)))\n",
"\n",
"# file = open('10d_decoding50.pkl', 'wb')\n",
"# pickle.dump(decoding1, file)\n",
"# file.close()"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"label=key_list[2]\n",
"\n",
"plt.figure()\n",
"plt.scatter(decoding1['decoding'], stim_val_pair[label][decoding1.index])\n",
"plt.ylabel(label+' label')\n",
"plt.xlabel('decoded parameter')\n",
"\n",
"statistic, bin_edges, bin_number = sts.binned_statistic(decoding1['decoding'], decoding1[label], lambda x:phasor_avg(x, period=stim_period[label]), 20)\n",
"\n",
"plt.figure()\n",
"plt.scatter(bin_edges[:-1], statistic)\n",
"plt.ylabel('avg. '+label+' label')\n",
"plt.xlabel('decoded parameter')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"# Decode second parameter\n",
"reduced_embed10d = remove_feature(embed10d_df[n], decoding1, cut_amplitude=0.5)\n",
"decoding2 = cohomological_parameterization(reduced_embed10d, coeff=23)\n",
"\n",
"decoding2['phase'] = stim_val['pair'][decoding2.index][:,1]\n",
"decoding2['orientation'] = stim_val['pair'][decoding2.index][:,0]"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"label = key_list[1]\n",
"plt.figure()\n",
"plt.scatter(decoding2['decoding'], stim_val_pair[label][decoding2.index])\n",
"plt.xlabel('decoded parameter')\n",
"plt.ylabel(label + ' label')\n",
"\n",
"file = open('10d_decoding50.pkl', 'wb')\n",
"pickle.dump(decoding2, file)\n",
"file.close()\n",
"\n",
"decoding2['phase'] = stim_val['pair'][decoding2.index][:,1]\n",
"decoding2['orientation'] = stim_val['pair'][decoding2.index][:,0]\n",
"\n",
"def phasor_avg(x, period):\n",
" return np.angle(np.sum(np.exp(2*np.pi*1j*x/period)))\n",
"\n",
"statistic, bin_edges, bin_number = sts.binned_statistic(decoding2['decoding'], decoding2['orientation'], lambda x:phasor_avg(x, period=360), 20)\n",
"\n",
"plt.figure()\n",
"plt.scatter(bin_edges[:-1], statistic)\n",
"plt.ylabel('avg. '+label+' label')\n",
"plt.xlabel('decoded parameter')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pair"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"tau_id = 60\n",
"Z = sts.zscore(stim_hist['pair'][:, tau_id, :].T, axis=0)\n",
"# Z = Z[:, np.logical_not(np.isnan(Z[0]))]\n",
"# n_components = len(Z[0])\n",
"n_components = 20\n",
"pca = PCA(n_components)\n",
"X = pca.fit_transform(Z)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"PC_values = np.arange(n_components)\n",
"plt.plot(PC_values, pca.explained_variance_ratio_, 'o-', linewidth=2, color='blue')\n",
"plt.title('Scree Plot')\n",
"plt.xticks(np.arange(20))\n",
"plt.xlabel('Principal Component')\n",
"plt.ylabel('Variance Explained')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(400, 20)"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e0191e6268f343258a51f955ccab2efd",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"fig, ax = plt.subplots(1, 2, figsize=(16, 6))\n",
"ax[0] = fig.add_subplot(1, 2, 1, projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax[0].scatter3D(x, y, z, c=stim_val['pair'][:,0])\n",
"ax[0].set_title(\"orientation\", pad=25, size=15)\n",
"ax[0].set_xlabel(\"X\")\n",
"ax[0].set_ylabel(\"Y\")\n",
"ax[0].set_zlabel(\"Z\")\n",
"\n",
"ax[1] = fig.add_subplot(1, 2, 2, projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax[1].scatter3D(x, y, z, c=stim_val['pair'][:,1])\n",
"ax[1].set_title(\"phase\", pad=25, size=15)\n",
"ax[1].set_xlabel(\"X\") \n",
"ax[1].set_ylabel(\"Y\") \n",
"ax[1].set_zlabel(\"Z\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8b514cb07cea42abad092eabbce2c622",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=5, description='phase_id', max=19), Output()), _dom_classes=('widget-int…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"\n",
"\n",
"@widgets.interact(phase_id = widgets.IntSlider(5,0,19))\n",
"\n",
"def phase_sec(phase_id):\n",
" fig, ax = plt.subplots(1, 2, figsize=(10, 6))\n",
" ax[0] = fig.add_subplot(1, 2, 1, projection='3d')\n",
" phase_sec_id = stim_val['pair'][:,1] == stim_val['phase'][phase_id]\n",
" x, y, z = X[phase_sec_id, 0], X[phase_sec_id,1], X[phase_sec_id,2]\n",
" ax[0].scatter3D(x, y, z, c=stim_val['pair'][phase_sec_id,0])\n",
" ax[0].set_title(\"orientation\", pad=25, size=15)\n",
" ax[0].set_xlabel(\"X\") \n",
" ax[0].set_ylabel(\"Y\") \n",
" ax[0].set_zlabel(\"Z\")\n",
"\n",
" ax[1] = fig.add_subplot(1, 2, 2, projection='3d')\n",
" x, y, z = X[:,0], X[:,1], X[:,2]\n",
" ax[1].scatter3D(x, y, z, c=stim_val['pair'][:,1])\n",
" ax[1].set_title(\"phase\", pad=25, size=15)\n",
" ax[1].set_xlabel(\"X\") \n",
" ax[1].set_ylabel(\"Y\") \n",
" ax[1].set_zlabel(\"Z\")\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"stim_val_pair = stim_val['pair'].reshape(20,20,2)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [],
"source": [
"# fix phase at 90\n",
"phase_id = 5\n",
"phase_sec_id = stim_val['pair'][:,1] == stim_val['phase'][phase_id]\n",
"XX = X[phase_sec_id]\n",
"xinit = 3 * sts.zscore(XX[:,:3], axis=0)\n",
"\n",
"embed3d_fix_phase = UMAP(n_components=3, init = xinit, n_neighbors = 15, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(XX[:,:3])\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"data_fix_phase = pd.DataFrame(embed3d_fix_phase)\n",
"\n",
"%matplotlib inline\n",
"persistence(data_fix_phase,homdim=1,coeff=23)\n"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"decoding_fixed_phase_90 = cohomological_parameterization(data_fix_phase, coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x26ca1a10a60>"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(embed3d_fix_phase[:,0], embed3d_fix_phase[:,1], c=stim_val['orientation'])"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual parameter')"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding_fixed_phase_90['decoding'], stim_val['orientation'])\n",
"plt.xlabel('decoded parameter')\n",
"plt.ylabel('actual parameter')"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'n_neighbors:5')"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x864 with 9 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.figure(figsize=(12,12))\n",
"for i in range(3):\n",
" for j in range(3):\n",
" ax = plt.subplot(3,3, j + 3*i + 1)\n",
" if i==j:\n",
" # ax.plot(embed3d_fix_phase[:,i])\n",
"\n",
" # ax.imshow(embed3d_fix_phase[:,i].reshape(20,20), interpolation='gaussian')\n",
" # ax.set_xticks(np.arange(20)[::5])\n",
" # ax.set_xticklabels(stim_val['phase'][::5])\n",
" # ax.set_yticks(np.arange(20)[::5])\n",
" # ax.set_yticklabels(stim_val['orientation'][::5])\n",
" # ax.set_xlabel('phase')\n",
" # ax.set_ylabel('orientation')\n",
"\n",
" ax.plot(embed3d_fix_phase[:,i])\n",
" ax.set_xticks(np.arange(20)[::5])\n",
" ax.set_xticklabels(stim_val['phase'][::5])\n",
" ax.set_yticks(np.arange(20)[::5])\n",
" ax.set_yticklabels(stim_val['orientation'][::5])\n",
" ax.set_xlabel('phase')\n",
" ax.set_ylabel('orientation')\n",
" else:\n",
" plt.scatter(embed3d_fix_phase[:,j], embed3d_fix_phase[:,i], s=1, c=stim_val['orientation'], cmap='jet')\n",
"\n",
"plt.title('n_neighbors:%d'%5)"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"data_XX = pd.DataFrame(XX[:,:10])\n",
"persistence(data_XX, homdim=1, coeff=2)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(20, 20)"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x26c94dada00>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(stim_val_pair[:,:,0])"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x26c94c5d4c0>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAa4AAAGdCAYAAABKG5eZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAldElEQVR4nO3df1BU973/8dfKj8UfsGhAYBPir/ojMYqJrVxsctXKFWnGgO01hvFe0Rh7J6MzyXCTa+kk6m06Q9u0SdrKYG4nSDI2UTOT4J3GoVdJ0FoxVpFpzO11hCDg6OKPBhZIBcKe7x/9uu3WXczGs8oHno+ZM+M55/N5+96Pu75Y9nBwWJZlCQAAQ4y43Q0AABAOggsAYBSCCwBgFIILAGAUggsAYBSCCwBgFIILAGAUggsAYJTo292AHXw+n86fP6/4+Hg5HI7b3Q4AIEyWZamzs1Nut1sjRgz8nmpIBNf58+eVnp5+u9sAANyk1tZW3XXXXQOOGRLBFR8fL0l6UN9UtGJuqlbUuLF2tPQXiQm2lPGNHW1LHUnqTYi1p47LvqdO7xh7vmPdG2/fu+2+MfbU+XyMfXdU6x/js6dQfJ89dSSNHN1rS507RnfbUkeSUkZ32lInfeSnttSRpAnOy7bUmRLbZksdSZoY7bWnTow9LxZvl08THjjr//98IEMiuK59ezBaMYp23GRwjbDnP/a/FHPaUsYXFWdLHUnyRdvz+Hwx9j11+mPtCa4op33B5bPnn06+OPuCyxppU3CNjLKnjqSoUfasefToz22pI0kxo3tsqeMcdXP/l/ytkU57Xi+jnfb928VH2/O6S4ix91KJL/JxDxdnAACMQnABAIwSseAqLS3VxIkTFRcXp8zMTB07dmzA8W+//bZmzJihuLg4zZo1S/v27YtUawAAg0UkuHbv3q2ioiJt2bJFdXV1ysjIUE5Oji5evBh0/JEjR1RQUKB169bp5MmTys/PV35+vk6dOhWJ9gAABotIcL300ktav3691q5dq3vvvVfbt2/XqFGjVF5eHnT8z372My1dulTPPvus7rnnHr3wwgt64IEHtG3btki0BwAwmO3B1dvbqxMnTig7O/uvf8mIEcrOzlZtbW3QObW1tQHjJSknJyfk+J6eHnm93oANADA82B5cly9fVn9/v1JSUgKOp6SkyOPxBJ3j8XjCGl9SUiKXy+Xf+OFjABg+jLyqsLi4WB0dHf6ttbX1drcEALhFbP8B5KSkJEVFRamtLfAnvNva2pSamhp0TmpqaljjnU6nnE6bfkIUAGAU299xxcbGau7cuaqurvYf8/l8qq6uVlZWVtA5WVlZAeMlaf/+/SHHAwCGr4jc8qmoqEiFhYX66le/qnnz5umVV15Rd3e31q5dK0lavXq17rzzTpWUlEiSnnrqKS1YsEA//elP9fDDD2vXrl06fvy4/uu//isS7QEADBaR4Fq5cqUuXbqkzZs3y+PxaM6cOaqqqvJfgNHS0hJw2/r58+frzTff1HPPPafvfe97mjp1qiorK3XfffdFoj0AgMEclmXZdxfQ28Tr9crlcmmh8m7+Jrt3jLOpK0ljXbaU8Y216VblknpdNt0dPtG+r3l64m26O3zC4Ls7fF+8jXeHjx98d4cfNcaeG9omjbHv7vCpo+358ZgJo/5kSx1JmuS8ZEudqc7gV1p/GZOjO2ypM8muu8N3+jR22ifq6OhQQsLAv1nDyKsKAQDDF8EFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADAKwQUAMArBBQAwCsEFADCK7cFVUlKir33ta4qPj9f48eOVn5+v06dPDzinoqJCDocjYIuLi7O7NQDAEGB7cB08eFAbNmzQ0aNHtX//fvX19WnJkiXq7u4ecF5CQoIuXLjg35qbm+1uDQAwBETbXbCqqipgv6KiQuPHj9eJEyf0j//4jyHnORwOpaam2t0OAGCIifhnXB0dHZKkcePGDTiuq6tLEyZMUHp6uvLy8vTxxx+HHNvT0yOv1xuwAQCGh4gGl8/n09NPP62vf/3ruu+++0KOmz59usrLy7V3717t3LlTPp9P8+fP17lz54KOLykpkcvl8m/p6emReggAgEEmosG1YcMGnTp1Srt27RpwXFZWllavXq05c+ZowYIFeuedd5ScnKxXX3016Pji4mJ1dHT4t9bW1ki0DwAYhGz/jOuajRs36te//rUOHTqku+66K6y5MTExuv/++9XQ0BD0vNPplNPptKNNAIBhbH/HZVmWNm7cqHfffVfvv/++Jk2aFHaN/v5+ffTRR0pLS7O7PQCA4Wx/x7Vhwwa9+eab2rt3r+Lj4+XxeCRJLpdLI0eOlCStXr1ad955p0pKSiRJ3//+9/UP//AP+spXvqL29na9+OKLam5u1hNPPGF3ewAAw9keXGVlZZKkhQsXBhzfsWOH1qxZI0lqaWnRiBF/fbP36aefav369fJ4PBo7dqzmzp2rI0eO6N5777W7PQCA4WwPLsuybjimpqYmYP/ll1/Wyy+/bHcrAIAhiHsVAgCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxCcAEAjEJwAQCMQnABAIxie3Bt3bpVDocjYJsxY8aAc95++23NmDFDcXFxmjVrlvbt22d3WwCAISIi77hmzpypCxcu+LfDhw+HHHvkyBEVFBRo3bp1OnnypPLz85Wfn69Tp05FojUAgOEiElzR0dFKTU31b0lJSSHH/uxnP9PSpUv17LPP6p577tELL7ygBx54QNu2bYtEawAAw0UkuM6cOSO3263Jkydr1apVamlpCTm2trZW2dnZAcdycnJUW1sbck5PT4+8Xm/ABgAYHmwPrszMTFVUVKiqqkplZWVqamrSQw89pM7OzqDjPR6PUlJSAo6lpKTI4/GE/DtKSkrkcrn8W3p6uq2PAQAweNkeXLm5uVqxYoVmz56tnJwc7du3T+3t7dqzZ49tf0dxcbE6Ojr8W2trq221AQCDW3Sk/4LExERNmzZNDQ0NQc+npqaqra0t4FhbW5tSU1ND1nQ6nXI6nbb2CQAwQ8R/jqurq0uNjY1KS0sLej4rK0vV1dUBx/bv36+srKxItwYAMJDtwfXMM8/o4MGDOnv2rI4cOaLly5crKipKBQUFkqTVq1eruLjYP/6pp55SVVWVfvrTn+r//u//tHXrVh0/flwbN260uzUAwBBg+7cKz507p4KCAl25ckXJycl68MEHdfToUSUnJ0uSWlpaNGLEX/Ny/vz5evPNN/Xcc8/pe9/7nqZOnarKykrdd999drcGABgCbA+uXbt2DXi+pqbmumMrVqzQihUr7G4FADAEca9CAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFEILgCAUQguAIBRCC4AgFFsD66JEyfK4XBct23YsCHo+IqKiuvGxsXF2d0WAGCIiLa74O9//3v19/f790+dOqV/+qd/0ooVK0LOSUhI0OnTp/37DofD7rYAAEOE7cGVnJwcsP/DH/5QU6ZM0YIFC0LOcTgcSk1NtbsVAMAQFNHPuHp7e7Vz5049/vjjA76
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(stim_val_pair[:,:,1])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# @title run a manifold embedding algorithm (UMAP) in two or three dimensions. \n",
"# !pip install umap-learn --quiet\n",
"from umap import UMAP\n",
"\n",
"cut_off_dim = 5\n",
"X_reduced = X[:,:cut_off_dim]\n",
"ncomp = cut_off_dim # try 2, then try 3\n",
"xinit = 3 * sts.zscore(X_reduced, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"embed3d = UMAP(n_components=ncomp, init = xinit, n_neighbors = 20, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(X_reduced)\n",
" \n",
"np.save('embed3d_n_neighbors20.npy', embed3d)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x864 with 25 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.figure(figsize=(12,12))\n",
"for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" # ax.plot(embed3d[:,i])\n",
"\n",
" # ax.imshow(embed3d[:,i].reshape(20,20), interpolation='gaussian')\n",
" # ax.set_xticks(np.arange(20)[::5])\n",
" # ax.set_xticklabels(stim_val['phase'][::5])\n",
" # ax.set_yticks(np.arange(20)[::5])\n",
" # ax.set_yticklabels(stim_val['orientation'][::5])\n",
" # ax.set_xlabel('phase')\n",
" # ax.set_ylabel('orientation')\n",
"\n",
" ax.imshow(embed3d[:,i].reshape(20,20))\n",
" ax.set_xticks(np.arange(20)[::5])\n",
" ax.set_xticklabels(stim_val['phase'][::5])\n",
" ax.set_yticks(np.arange(20)[::5])\n",
" ax.set_yticklabels(stim_val['orientation'][::5])\n",
" ax.set_xlabel('phase')\n",
" ax.set_ylabel('orientation')\n",
" else:\n",
" plt.scatter(embed3d[:,j], embed3d[:,i], s=1, c=stim_val['pair'][:,1], cmap='jet')\n",
"\n",
"plt.title('n_neighbors:%d'%)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"embed3d = UMAP(n_components=ncomp, init = xinit, n_neighbors = 50, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(X_reduced)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(400, 5)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"embed3d.shape"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 25 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.figure(figsize=(8,8))\n",
"for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" # ax.plot(embed3d[:,i])\n",
"\n",
" # ax.imshow(embed3d[:,i].reshape(20,20), interpolation='gaussian')\n",
" # ax.set_xticks(np.arange(20)[::5])\n",
" # ax.set_xticklabels(stim_val['phase'][::5])\n",
" # ax.set_yticks(np.arange(20)[::5])\n",
" # ax.set_yticklabels(stim_val['orientation'][::5])\n",
" # ax.set_xlabel('phase')\n",
" # ax.set_ylabel('orientation')\n",
"\n",
" ax.plot(embed3d[:,i])\n",
" ax.set_xticks(np.arange(20)[::5])\n",
" ax.set_xticklabels(stim_val['phase'][::5])\n",
" ax.set_yticks(np.arange(20)[::5])\n",
" ax.set_yticklabels(stim_val['orientation'][::5])\n",
" ax.set_xlabel('phase')\n",
" ax.set_ylabel('orientation')\n",
" else:\n",
" plt.scatter(embed3d[:,j], embed3d[:,i], s=1, c=stim_val['pair'][:,1], cmap='jet')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Umap cohomological decoding"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"data = pd.DataFrame(embed3d)\n",
"\n",
"persistence(data,homdim=1,coeff=2)\n",
"persistence(data,homdim=1,coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"decoding1 = cohomological_parameterization(data, coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual parameter')"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding1['decoding'], stim_val['pair'][decoding1.index][:,1])\n",
"plt.xlabel('decoded parameter')\n",
"plt.ylabel('actual parameter')"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"\n",
"file = open('decoding50.pkl', 'wb')\n",
"pickle.dump(decoding1, file)\n",
"file.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Binning"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>decoding</th>\n",
" <th>phase</th>\n",
" <th>orientation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.437717</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.449213</td>\n",
" <td>18.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.429066</td>\n",
" <td>36.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.424594</td>\n",
" <td>54.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.816654</td>\n",
" <td>72.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>395</th>\n",
" <td>0.438846</td>\n",
" <td>270.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>396</th>\n",
" <td>0.441466</td>\n",
" <td>288.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>397</th>\n",
" <td>0.462445</td>\n",
" <td>306.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>398</th>\n",
" <td>0.672323</td>\n",
" <td>324.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>399</th>\n",
" <td>0.677862</td>\n",
" <td>342.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>400 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" decoding phase orientation\n",
"0 0.437717 0.0 0.0\n",
"1 0.449213 18.0 0.0\n",
"2 0.429066 36.0 0.0\n",
"3 0.424594 54.0 0.0\n",
"4 0.816654 72.0 0.0\n",
".. ... ... ...\n",
"395 0.438846 270.0 171.0\n",
"396 0.441466 288.0 171.0\n",
"397 0.462445 306.0 171.0\n",
"398 0.672323 324.0 171.0\n",
"399 0.677862 342.0 171.0\n",
"\n",
"[400 rows x 3 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoding1['phase'] = stim_val['pair'][decoding1.index][:,1]\n",
"decoding1['orientation'] = stim_val['pair'][decoding1.index][:,0]\n",
"decoding1"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on function binned_statistic_2d in module scipy.stats._binned_statistic:\n",
"\n",
"binned_statistic_2d(x, y, values, statistic='mean', bins=10, range=None, expand_binnumbers=False)\n",
" Compute a bidimensional binned statistic for one or more sets of data.\n",
" \n",
" This is a generalization of a histogram2d function. A histogram divides\n",
" the space into bins, and returns the count of the number of points in\n",
" each bin. This function allows the computation of the sum, mean, median,\n",
" or other statistic of the values (or set of values) within each bin.\n",
" \n",
" Parameters\n",
" ----------\n",
" x : (N,) array_like\n",
" A sequence of values to be binned along the first dimension.\n",
" y : (N,) array_like\n",
" A sequence of values to be binned along the second dimension.\n",
" values : (N,) array_like or list of (N,) array_like\n",
" The data on which the statistic will be computed. This must be\n",
" the same shape as `x`, or a list of sequences - each with the same\n",
" shape as `x`. If `values` is such a list, the statistic will be\n",
" computed on each independently.\n",
" statistic : string or callable, optional\n",
" The statistic to compute (default is 'mean').\n",
" The following statistics are available:\n",
" \n",
" * 'mean' : compute the mean of values for points within each bin.\n",
" Empty bins will be represented by NaN.\n",
" * 'std' : compute the standard deviation within each bin. This\n",
" is implicitly calculated with ddof=0.\n",
" * 'median' : compute the median of values for points within each\n",
" bin. Empty bins will be represented by NaN.\n",
" * 'count' : compute the count of points within each bin. This is\n",
" identical to an unweighted histogram. `values` array is not\n",
" referenced.\n",
" * 'sum' : compute the sum of values for points within each bin.\n",
" This is identical to a weighted histogram.\n",
" * 'min' : compute the minimum of values for points within each bin.\n",
" Empty bins will be represented by NaN.\n",
" * 'max' : compute the maximum of values for point within each bin.\n",
" Empty bins will be represented by NaN.\n",
" * function : a user-defined function which takes a 1D array of\n",
" values, and outputs a single numerical statistic. This function\n",
" will be called on the values in each bin. Empty bins will be\n",
" represented by function([]), or NaN if this returns an error.\n",
" \n",
" bins : int or [int, int] or array_like or [array, array], optional\n",
" The bin specification:\n",
" \n",
" * the number of bins for the two dimensions (nx = ny = bins),\n",
" * the number of bins in each dimension (nx, ny = bins),\n",
" * the bin edges for the two dimensions (x_edge = y_edge = bins),\n",
" * the bin edges in each dimension (x_edge, y_edge = bins).\n",
" \n",
" If the bin edges are specified, the number of bins will be,\n",
" (nx = len(x_edge)-1, ny = len(y_edge)-1).\n",
" \n",
" range : (2,2) array_like, optional\n",
" The leftmost and rightmost edges of the bins along each dimension\n",
" (if not specified explicitly in the `bins` parameters):\n",
" [[xmin, xmax], [ymin, ymax]]. All values outside of this range will be\n",
" considered outliers and not tallied in the histogram.\n",
" expand_binnumbers : bool, optional\n",
" 'False' (default): the returned `binnumber` is a shape (N,) array of\n",
" linearized bin indices.\n",
" 'True': the returned `binnumber` is 'unraveled' into a shape (2,N)\n",
" ndarray, where each row gives the bin numbers in the corresponding\n",
" dimension.\n",
" See the `binnumber` returned value, and the `Examples` section.\n",
" \n",
" .. versionadded:: 0.17.0\n",
" \n",
" Returns\n",
" -------\n",
" statistic : (nx, ny) ndarray\n",
" The values of the selected statistic in each two-dimensional bin.\n",
" x_edge : (nx + 1) ndarray\n",
" The bin edges along the first dimension.\n",
" y_edge : (ny + 1) ndarray\n",
" The bin edges along the second dimension.\n",
" binnumber : (N,) array of ints or (2,N) ndarray of ints\n",
" This assigns to each element of `sample` an integer that represents the\n",
" bin in which this observation falls. The representation depends on the\n",
" `expand_binnumbers` argument. See `Notes` for details.\n",
" \n",
" \n",
" See Also\n",
" --------\n",
" numpy.digitize, numpy.histogram2d, binned_statistic, binned_statistic_dd\n",
" \n",
" Notes\n",
" -----\n",
" Binedges:\n",
" All but the last (righthand-most) bin is half-open. In other words, if\n",
" `bins` is ``[1, 2, 3, 4]``, then the first bin is ``[1, 2)`` (including 1,\n",
" but excluding 2) and the second ``[2, 3)``. The last bin, however, is\n",
" ``[3, 4]``, which *includes* 4.\n",
" \n",
" `binnumber`:\n",
" This returned argument assigns to each element of `sample` an integer that\n",
" represents the bin in which it belongs. The representation depends on the\n",
" `expand_binnumbers` argument. If 'False' (default): The returned\n",
" `binnumber` is a shape (N,) array of linearized indices mapping each\n",
" element of `sample` to its corresponding bin (using row-major ordering).\n",
" Note that the returned linearized bin indices are used for an array with\n",
" extra bins on the outer binedges to capture values outside of the defined\n",
" bin bounds.\n",
" If 'True': The returned `binnumber` is a shape (2,N) ndarray where\n",
" each row indicates bin placements for each dimension respectively. In each\n",
" dimension, a binnumber of `i` means the corresponding value is between\n",
" (D_edge[i-1], D_edge[i]), where 'D' is either 'x' or 'y'.\n",
" \n",
" .. versionadded:: 0.11.0\n",
" \n",
" Examples\n",
" --------\n",
" >>> from scipy import stats\n",
" \n",
" Calculate the counts with explicit bin-edges:\n",
" \n",
" >>> x = [0.1, 0.1, 0.1, 0.6]\n",
" >>> y = [2.1, 2.6, 2.1, 2.1]\n",
" >>> binx = [0.0, 0.5, 1.0]\n",
" >>> biny = [2.0, 2.5, 3.0]\n",
" >>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny])\n",
" >>> ret.statistic\n",
" array([[2., 1.],\n",
" [1., 0.]])\n",
" \n",
" The bin in which each sample is placed is given by the `binnumber`\n",
" returned parameter. By default, these are the linearized bin indices:\n",
" \n",
" >>> ret.binnumber\n",
" array([5, 6, 5, 9])\n",
" \n",
" The bin indices can also be expanded into separate entries for each\n",
" dimension using the `expand_binnumbers` parameter:\n",
" \n",
" >>> ret = stats.binned_statistic_2d(x, y, None, 'count', bins=[binx, biny],\n",
" ... expand_binnumbers=True)\n",
" >>> ret.binnumber\n",
" array([[1, 1, 1, 2],\n",
" [1, 2, 1, 1]])\n",
" \n",
" Which shows that the first three elements belong in the xbin 1, and the\n",
" fourth into xbin 2; and so on for y.\n",
"\n"
]
}
],
"source": [
"help(sts.binned_statistic_2d)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"def phasor_avg(x, period):\n",
" return np.angle(np.sum(np.exp(2*np.pi*1j*x/period)))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"statistic, bin_edges, bin_number = sts.binned_statistic(decoding1['decoding'], decoding1['phase'], lambda x:phasor_avg(x, period=360), 20)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'decoded phase bin')"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(bin_edges[:-1], statistic)\n",
"plt.ylabel('avg. actual phase')\n",
"plt.xlabel('decoded phase bin')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remove feature"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hoverinfo": [
"x",
"text"
],
"marker": {
"color": [
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,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399
],
"colorscale": [
[
0,
"#e2d9e2"
],
[
0.1111111111111111,
"#9ebbc9"
],
[
0.2222222222222222,
"#6785be"
],
[
0.3333333333333333,
"#5e43a5"
],
[
0.4444444444444444,
"#421257"
],
[
0.5555555555555556,
"#471340"
],
[
0.6666666666666666,
"#8e2c50"
],
[
0.7777777777777778,
"#ba6657"
],
[
0.8888888888888888,
"#ceac94"
],
[
1,
"#e2d9e2"
]
],
"size": 5,
"sizemode": "diameter"
},
"mode": "markers",
"name": "0",
"scene": "scene",
"text": [
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,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399
],
"type": "scatter3d",
"x": [
-2.636749029159546,
-0.5232290029525757,
-2.12611985206604,
-1.527305245399475,
1.4569270610809326,
1.345768928527832,
1.7701541185379028,
3.0743472576141357,
1.8496540784835815,
2.0838444232940674,
0.8768432140350342,
1.8071777820587158,
0.15131445229053497,
-1.0906720161437988,
-2.275883197784424,
-2.5951380729675293,
-1.9628797769546509,
-2.656909227371216,
-2.18230938911438,
-2.475834608078003,
-2.189849376678467,
-2.4870805740356445,
1.9005972146987915,
1.4525853395462036,
1.643107295036316,
2.013201951980591,
1.587700605392456,
3.01481294631958,
2.2142410278320312,
1.8162919282913208,
2.277534008026123,
1.3643985986709595,
-0.5854825377464294,
-0.854220986366272,
-1.816042184829712,
-1.8970468044281006,
-2.78483510017395,
-2.6056785583496094,
-1.4273104667663574,
-2.3762331008911133,
-2.2689738273620605,
-1.7684072256088257,
-2.292423725128174,
2.3182098865509033,
1.552763819694519,
1.5313694477081299,
2.7651844024658203,
1.4876394271850586,
2.6307759284973145,
2.6701016426086426,
1.5714685916900635,
-1.0012905597686768,
-1.1992813348770142,
0.19620496034622192,
-2.33363938331604,
-2.502152919769287,
-2.4091274738311768,
-1.663210153579712,
-1.9905799627304077,
-1.5104776620864868,
-2.309781551361084,
-0.6541293263435364,
-2.1944990158081055,
0.5775707960128784,
1.549149513244629,
-0.21101832389831543,
2.2964460849761963,
2.3633649349212646,
2.2819042205810547,
0.5238966941833496,
-0.3111248016357422,
-1.1424263715744019,
-1.1895091533660889,
-1.487895131111145,
-2.6841604709625244,
-1.8036202192306519,
-2.1683895587921143,
-2.757735252380371,
-2.183826446533203,
-2.783350944519043,
-2.454280138015747,
-1.766473650932312,
-0.2965039610862732,
1.7607393264770508,
2.805992364883423,
1.9331578016281128,
1.8615463972091675,
3.0641026496887207,
2.9604053497314453,
0.876614511013031,
2.064030885696411,
0.6317029595375061,
2.5760114192962646,
-2.1109163761138916,
-2.2257227897644043,
-1.653878092765808,
-2.4250428676605225,
-2.4616878032684326,
-2.8108439445495605,
-2.666435480117798,
-1.5650197267532349,
-0.3328011631965637,
1.5612006187438965,
2.5954842567443848,
3.02268648147583,
2.890842914581299,
3.1330513954162598,
3.1326441764831543,
3.2236509323120117,
2.8523616790771484,
-0.16439418494701385,
0.10609368234872818,
1.8729991912841797,
0.4241522252559662,
-2.2547597885131836,
-1.3061115741729736,
-2.600668430328369,
-2.445377826690674,
-1.9946590662002563,
-1.2770472764968872,
-1.328853726387024,
-0.23924320936203003,
1.9268301725387573,
2.666281223297119,
3.1955409049987793,
3.2047297954559326,
2.8159854412078857,
1.9713780879974365,
2.4676706790924072,
2.268953800201416,
-0.7109352946281433,
0.06688077002763748,
-0.14551231265068054,
-1.2189176082611084,
-0.3686046302318573,
-2.085026264190674,
-2.372225522994995,
-2.665112257003784,
-2.549307346343994,
-2.495276927947998,
-0.884303867816925,
0.2018129527568817,
2.4002935886383057,
2.090407609939575,
3.082230567932129,
2.780928373336792,
2.922239303588867,
2.7081258296966553,
2.0047130584716797,
-0.27897921204566956,
0.5033806562423706,
-0.866249680519104,
-1.055198311805725,
-1.9911868572235107,
-1.9282835721969604,
-2.3161332607269287,
-2.5586628913879395,
-2.820148229598999,
-1.2765735387802124,
1.4933128356933594,
-0.20843343436717987,
1.6894797086715698,
1.9140114784240723,
1.9602328538894653,
3.0939362049102783,
2.978870153427124,
3.0775411128997803,
2.3704898357391357,
2.316087484359741,
0.6358213424682617,
0.3318796455860138,
0.5168808102607727,
-0.46616330742836,
-1.062654733657837,
-1.3454877138137817,
-1.57883882522583,
-1.8256975412368774,
-2.5222644805908203,
-1.7336790561676025,
-0.33455175161361694,
-0.2581677734851837,
1.4023677110671997,
1.7895984649658203,
2.1219887733459473,
2.967463731765747,
3.0083870887756348,
2.6559736728668213,
1.9694633483886719,
2.351221799850464,
-0.08939039707183838,
-0.3357005715370178,
-0.39171260595321655,
-0.5122706294059753,
-2.1279990673065186,
-1.3979371786117554,
-1.2050074338912964,
-2.1696107387542725,
-2.569901704788208,
-2.320657253265381,
-0.4031272530555725,
-0.009206417948007584,
1.8169519901275635,
1.7767773866653442,
2.2835114002227783,
2.2570948600769043,
2.7004971504211426,
2.391049385070801,
2.4999215602874756,
0.8948326110839844,
0.47712597250938416,
-0.4832494258880615,
-1.5466992855072021,
-0.5620824694633484,
-1.3364862203598022,
-2.3651628494262695,
-2.2087817192077637,
-1.7438212633132935,
-0.07085371017456055,
-0.7388221025466919,
-0.5298848748207092,
-0.3381362557411194,
1.5063271522521973,
1.8838891983032227,
2.9630093574523926,
3.2252156734466553,
2.635326623916626,
2.15458083152771,
-0.031721197068691254,
0.6513852477073669,
0.6707361936569214,
0.6062929034233093,
-1.202601671218872,
-1.877831220626831,
-2.2017133235931396,
-1.6520916223526,
-2.8384134769439697,
-2.120011329650879,
-2.1783783435821533,
-1.452439546585083,
-1.2341161966323853,
1.605832815170288,
1.6371420621871948,
2.0362424850463867,
2.531794309616089,
2.940856456756592,
2.5741639137268066,
1.7416201829910278,
1.5101065635681152,
1.8209607601165771,
0.7662189602851868,
-0.8282843232154846,
-2.3237295150756836,
-1.5714404582977295,
-2.411151170730591,
-2.5890705585479736,
-2.8010451793670654,
-0.012580987997353077,
-1.2551218271255493,
-0.7759292125701904,
1.254787802696228,
1.3671361207962036,
2.0056381225585938,
2.4979350566864014,
2.92318058013916,
3.0899829864501953,
2.2052528858184814,
1.9483743906021118,
2.034580707550049,
1.7920607328414917,
-2.0073401927948,
-0.5849555134773254,
-1.62759268283844,
-2.31774640083313,
-2.539726972579956,
-2.1547820568084717,
-2.136880397796631,
-2.333404541015625,
-1.456567645072937,
-0.6688680052757263,
-0.9888973832130432,
-1.1897625923156738,
1.4709984064102173,
2.401407241821289,
3.2323243618011475,
2.608628749847412,
2.704803943634033,
2.4618093967437744,
3.1517574787139893,
-0.841175377368927,
1.7388787269592285,
-1.8080576658248901,
-2.341444253921509,
-2.659764289855957,
-1.333786964416504,
-2.5701818466186523,
-2.8970787525177,
-2.4450204372406006,
-1.6987088918685913,
-1.3139636516571045,
1.6273058652877808,
1.5312578678131104,
2.156438112258911,
2.0231175422668457,
3.0327723026275635,
2.8761532306671143,
2.3773558139801025,
1.6250115633010864,
-1.2280019521713257,
-0.4596274495124817,
-2.451291561126709,
-2.5699734687805176,
-1.8156791925430298,
-2.422438859939575,
-1.5591089725494385,
-1.1534817218780518,
-2.124786853790283,
-2.3588247299194336,
-2.4486005306243896,
-1.4898719787597656,
1.1692171096801758,
2.4371566772460938,
2.675421714782715,
3.028947353363037,
3.2762906551361084,
3.210784673690796,
2.798219680786133,
0.0778750628232956,
-1.3871999979019165,
-0.42429912090301514,
-0.29750674962997437,
-1.7927029132843018,
-1.8415130376815796,
-2.716629981994629,
-2.6533467769622803,
-2.2065868377685547,
-2.449666976928711,
-2.4294679164886475,
-2.0667805671691895,
-1.7843027114868164,
0.15915553271770477,
1.5144495964050293,
1.846925139427185,
2.023528575897217,
3.118455171585083,
2.877985715866089,
2.1591796875,
2.6429860591888428,
0.6254458427429199,
-0.9037439823150635,
-1.6764146089553833,
-2.3950929641723633,
-1.7713427543640137,
-1.7855433225631714,
-1.9513452053070068,
-2.4264798164367676,
-2.507366895675659,
-2.125393867492676,
-1.2815886735916138,
1.0583539009094238,
0.12755917012691498,
1.1940327882766724,
2.0802133083343506,
1.6228529214859009,
2.4104721546173096,
2.2607128620147705,
-0.3727504014968872,
3.060093402862549,
1.9437981843948364,
0.27943891286849976,
-2.341064214706421,
-2.351708173751831,
-2.4084227085113525,
-2.444552421569824,
-2.3870577812194824,
-1.5597811937332153,
-2.083660364151001,
-1.435258150100708,
-1.3379019498825073,
-0.7522804141044617,
0.023404274135828018,
0.8143199682235718,
1.4998400211334229,
2.33652400970459,
2.126136302947998,
1.7701870203018188,
0.46673038601875305,
2.1971495151519775,
2.6723897457122803,
-0.20574593544006348,
-1.903565764427185,
-2.3365414142608643,
-2.353273391723633,
-2.471548318862915,
-2.635589122772217,
-2.775251865386963,
-1.4211307764053345,
-1.5380645990371704,
-1.002173900604248,
0.16280396282672882,
0.26799845695495605
],
"y": [
0.3073514699935913,
-1.2182079553604126,
-0.5640690922737122,
-1.1190026998519897,
-0.6362850666046143,
1.5776411294937134,
1.3202075958251953,
0.2799534499645233,
-0.8010665774345398,
-0.8130486011505127,
-0.727885901927948,
-0.8682217001914978,
0.838338315486908,
-1.2753883600234985,
-0.11090821772813797,
-0.5063751935958862,
0.9768651723861694,
-0.6977108120918274,
-0.28420016169548035,
0.5518101453781128,
-0.4540514647960663,
-0.16861146688461304,
1.5795468091964722,
1.7228995561599731,
1.6310762166976929,
0.8831251859664917,
0.4867601990699768,
-0.2729418873786926,
-0.16644050180912018,
-0.7189112901687622,
-0.7125007510185242,
-1.5052460432052612,
-1.1249767541885376,
-0.7815974950790405,
-0.09239272773265839,
-1.3314956426620483,
0.06283213198184967,
0.21165552735328674,
-1.530548334121704,
0.008618169464170933,
0.9531002640724182,
1.4196105003356934,
0.9770189523696899,
0.2491334229707718,
0.58216792345047,
1.590476155281067,
0.06688202917575836,
0.5912284851074219,
-0.5568219423294067,
-0.6190695762634277,
-1.3248250484466553,
-1.1945958137512207,
-1.310115098953247,
-0.7142967581748962,
0.9624256491661072,
0.030214929953217506,
-0.7071700692176819,
-1.329491376876831,
-1.2089256048202515,
0.2627672255039215,
0.7363324761390686,
0.7688787579536438,
-0.49741777777671814,
1.268431544303894,
0.9928838014602661,
1.1063992977142334,
0.165899395942688,
0.10362887382507324,
-0.8707314729690552,
-0.6509326696395874,
-1.755077838897705,
-1.3063374757766724,
-1.6163513660430908,
-0.6578387022018433,
-0.680621325969696,
-0.22083736956119537,
-0.8573488593101501,
-0.35041534900665283,
-1.0925333499908447,
-0.3843792676925659,
0.7898856997489929,
1.3367650508880615,
0.9189524054527283,
1.3290361166000366,
0.10131890326738358,
1.3698934316635132,
0.1286434382200241,
-0.7253291010856628,
-0.1618862748146057,
-1.455517053604126,
0.03764783591032028,
-1.3536484241485596,
-1.0519436597824097,
-1.102368712425232,
-1.07437002658844,
0.8636431694030762,
0.7749217748641968,
0.8868018984794617,
0.059267204254865646,
0.20887108147144318,
1.554880976676941,
1.7328338623046875,
1.6574392318725586,
0.09423288702964783,
-0.23941655457019806,
0.6016597747802734,
-0.5159286260604858,
-0.45896902680397034,
-0.5988583564758301,
-0.6909195184707642,
-1.271100401878357,
-1.7230411767959595,
-1.2443057298660278,
-1.599233865737915,
-0.5496954321861267,
-1.645702600479126,
-0.601917028427124,
-0.2875460684299469,
1.0931456089019775,
0.5997875332832336,
1.566237211227417,
1.22966730594635,
1.2093254327774048,
-0.35968607664108276,
-0.43390196561813354,
-0.6137526631355286,
0.2991188168525696,
0.2652530372142792,
-0.843012273311615,
-1.1960004568099976,
-0.9314181804656982,
-1.6544055938720703,
-1.1788768768310547,
-1.625083088874817,
-1.1066349744796753,
-0.8767375349998474,
-0.8955783843994141,
-0.47516292333602905,
0.23044440150260925,
0.4380115568637848,
1.7157890796661377,
1.6329143047332764,
0.25993165373802185,
1.3270355463027954,
-0.13288581371307373,
0.5336033701896667,
0.28808435797691345,
-0.3909056782722473,
-0.07458841800689697,
-1.7592657804489136,
-1.5602681636810303,
-1.675264596939087,
-1.6740005016326904,
-1.0372251272201538,
1.2635679244995117,
0.9389786720275879,
0.2734259068965912,
-0.23117855191230774,
1.6118382215499878,
1.5225201845169067,
1.6244443655014038,
1.5461360216140747,
1.3863155841827393,
1.5131620168685913,
-0.0928322970867157,
0.4989480972290039,
0.15169233083724976,
-0.5453267693519592,
-0.6588094830513,
-1.554460883140564,
-1.43989896774292,
-1.7288960218429565,
-1.1654797792434692,
-1.6671503782272339,
-0.35512804985046387,
1.1739448308944702,
0.06626895070075989,
0.7338117361068726,
1.3960143327713013,
1.5265229940414429,
1.664265751838684,
1.563443660736084,
1.4814398288726807,
1.424068570137024,
0.5690942406654358,
0.39433398842811584,
-0.9907390475273132,
-1.3041479587554932,
-0.4315612018108368,
-1.192265510559082,
-1.2926007509231567,
-1.2096853256225586,
-1.1455514430999756,
-1.0530451536178589,
-0.360250860452652,
-1.4914488792419434,
0.9946401119232178,
0.20970182120800018,
0.5077683329582214,
1.775773048400879,
1.6065752506256104,
1.460782766342163,
1.6805490255355835,
1.3331204652786255,
1.337679386138916,
0.24166934192180634,
-0.7490553259849548,
-0.2811664044857025,
-1.35236394405365,
-1.7132093906402588,
-1.2351900339126587,
1.3448354005813599,
-1.1301639080047607,
-1.459120750427246,
0.9142097234725952,
0.9922917485237122,
0.8919673562049866,
1.537003517150879,
1.755489468574524,
1.7933921813964844,
1.7519162893295288,
1.658876895904541,
1.5975285768508911,
0.45615020394325256,
-0.22323977947235107,
-0.6451533436775208,
-1.1315258741378784,
-1.2966467142105103,
-1.5909005403518677,
-1.5968538522720337,
-1.433286428451538,
-0.5971233248710632,
0.4708939492702484,
-0.9110822677612305,
1.4557346105575562,
-0.23283353447914124,
1.0522940158843994,
0.9501413106918335,
1.5699745416641235,
1.5931545495986938,
1.61350417137146,
1.5116722583770752,
1.2873518466949463,
1.1114286184310913,
0.258755624294281,
-0.2929762005805969,
-1.3466180562973022,
-1.4063233137130737,
-1.3217921257019043,
-1.4213918447494507,
-1.719537377357483,
-0.5935867428779602,
0.16192938387393951,
0.15584248304367065,
-0.30184030532836914,
0.0774451270699501,
1.5688303709030151,
0.5953820943832397,
1.7357265949249268,
1.6369752883911133,
1.5440952777862549,
1.5301169157028198,
0.026112958788871765,
0.6425432562828064,
-0.05458596348762512,
-1.1241093873977661,
-0.9194499850273132,
-1.255521297454834,
-1.309670329093933,
-1.1626633405685425,
-1.7420589923858643,
-1.4812431335449219,
-0.8494639992713928,
-0.25220823287963867,
-0.9375631213188171,
-0.8490588068962097,
0.470380038022995,
1.5222915410995483,
1.7011451721191406,
0.8031243681907654,
1.5918086767196655,
0.6896489262580872,
1.1773968935012817,
-0.3683306872844696,
-0.7142453789710999,
-0.9713537096977234,
-1.068410873413086,
-0.34815770387649536,
-0.9297611117362976,
-1.282157063484192,
-1.2368146181106567,
-0.27540120482444763,
-0.5067703127861023,
-1.4319669008255005,
0.19279606640338898,
-0.07041898369789124,
0.6292337775230408,
1.3997176885604858,
1.4670617580413818,
1.606366515159607,
0.9453895688056946,
0.490310937166214,
0.9830073118209839,
0.5542521476745605,
-0.6237378120422363,
-0.1365845501422882,
-1.4014512300491333,
-1.628750205039978,
-1.486925482749939,
-0.4462045431137085,
-0.8278690576553345,
-0.20497338473796844,
0.6053311228752136,
0.269463449716568,
-0.8390313982963562,
1.075843095779419,
0.7595785856246948,
0.7820119857788086,
1.5078366994857788,
1.6349693536758423,
0.1314404010772705,
0.7659013271331787,
-0.131573885679245,
-0.41338950395584106,
-0.3324352204799652,
-0.7138409614562988,
-0.5372509360313416,
-1.0307930707931519,
-0.9556679725646973,
-0.9986785650253296,
-1.0642783641815186,
-0.7952610850334167,
-0.5750700235366821,
-0.6735365986824036,
1.1381114721298218,
0.7539517879486084,
0.03860218822956085,
1.072481393814087,
1.114106297492981,
-0.934726357460022,
0.44154876470565796,
0.8167842030525208,
-0.6006396412849426,
-0.2947448790073395,
-0.6611872315406799,
0.3000542223453522,
-0.5400033593177795,
1.3366469144821167,
-1.0443168878555298,
1.308602213859558,
-0.31186729669570923,
1.1076242923736572,
-0.09007124602794647,
1.160498023033142,
0.8338593244552612,
-0.04935260862112045,
1.052345633506775,
-1.4882506132125854,
1.37422513961792,
1.3518725633621216,
0.030148740857839584,
-0.7327764630317688,
0.3653237223625183,
-0.7184453010559082,
0.582207441329956,
-1.045889973640442,
-0.625887393951416,
1.0746549367904663,
-0.5671799182891846,
0.25540608167648315,
-0.07326500862836838,
-0.48792997002601624,
-0.2127901166677475,
0.5802617073059082,
1.3357157707214355,
0.720526397228241,
-0.3667120635509491,
-0.7462166547775269,
0.9822026491165161,
-0.5295237898826599,
-1.1522475481033325,
-0.7522217631340027,
0.14334896206855774,
1.4512876272201538,
0.4850279986858368,
1.32559335231781,
-0.7918603420257568,
-0.31038686633110046,
1.708249568939209,
-1.0045711994171143,
-0.24398022890090942,
0.9027085900306702,
0.2922363877296448,
0.49757254123687744,
-0.21258603036403656,
0.23005519807338715,
0.2992172837257385,
0.8289351463317871,
-0.6940577030181885,
-0.795835018157959
],
"z": [
0.25247862935066223,
-0.5201209187507629,
-1.422930121421814,
-1.0521326065063477,
-0.05257199704647064,
-0.919045627117157,
-0.08603250980377197,
-0.3665373623371124,
0.28854358196258545,
0.41170501708984375,
-0.1361107975244522,
0.3039822578430176,
-0.6103042364120483,
-0.4989929795265198,
-0.6008402705192566,
-0.19286422431468964,
1.4104101657867432,
-0.8646129965782166,
0.4267890453338623,
0.5403592586517334,
-1.338730812072754,
-1.2566184997558594,
-0.6142240166664124,
-0.315213680267334,
0.19291117787361145,
-0.18949659168720245,
-0.24856673181056976,
-0.8636323809623718,
0.9624485969543457,
0.0007997429347597063,
-0.9066151976585388,
0.6343755722045898,
-0.5961406826972961,
-0.5652732849121094,
0.639112651348114,
-0.616364598274231,
-0.8310528993606567,
-0.4474818706512451,
-0.5239307284355164,
-0.3982047140598297,
-0.5110301375389099,
0.20601511001586914,
0.7897728085517883,
-1.2576290369033813,
-0.24336668848991394,
-0.22922076284885406,
-0.27425673604011536,
-0.21491196751594543,
0.5272048711776733,
-0.9698009490966797,
-0.34443172812461853,
-0.8786249756813049,
-0.9548211693763733,
0.030404360964894295,
0.6473854780197144,
-0.5080245733261108,
-0.00010515388567000628,
-0.76103675365448,
-0.9072094559669495,
0.9388377070426941,
-0.4464224874973297,
0.7568147778511047,
-1.4058395624160767,
-0.4622499942779541,
-0.008377118036150932,
-0.5297369360923767,
-1.1347864866256714,
-1.124145269393921,
0.3065145015716553,
-0.10182292014360428,
0.36198508739471436,
-0.8321139812469482,
-0.4040463864803314,
0.21685072779655457,
-0.5292386412620544,
0.9856938123703003,
-1.2392756938934326,
-0.9896195530891418,
-0.6342225074768066,
-0.9353980422019958,
-0.4937695264816284,
-0.343997061252594,
-0.5867534875869751,
-1.0271391868591309,
-0.5118447542190552,
-0.13835079967975616,
-0.20890739560127258,
-0.30152246356010437,
0.3556896448135376,
0.914784848690033,
0.9739790558815002,
0.9001023769378662,
-0.0559791661798954,
-0.6365620493888855,
-0.8146123886108398,
1.364690899848938,
-0.14610424637794495,
-0.07170797884464264,
-0.825549840927124,
-0.7753223776817322,
0.35577693581581116,
-0.1034231185913086,
-0.03589867055416107,
-1.133544921875,
-0.8397983908653259,
0.3348199725151062,
-0.7145067453384399,
-0.13348358869552612,
-0.41936400532722473,
-0.855025053024292,
1.3367815017700195,
0.628289520740509,
0.7177367210388184,
0.9017387628555298,
-0.2747702896595001,
-0.3661532998085022,
-0.3406483232975006,
-0.2950763404369354,
1.2785636186599731,
0.9885830879211426,
-0.19698259234428406,
-0.4475131928920746,
-1.041780948638916,
-0.8931893706321716,
-0.6741726398468018,
-0.44113314151763916,
0.5642869472503662,
0.8366304636001587,
0.23979169130325317,
0.4244847297668457,
1.3385051488876343,
0.652646005153656,
1.4847601652145386,
-0.07319941371679306,
1.4331687688827515,
0.0964164286851883,
-0.6037079095840454,
-0.7222059369087219,
-0.09311182796955109,
-0.4921453297138214,
0.38969579339027405,
-0.2733016312122345,
-1.1837118864059448,
-0.7355354428291321,
-0.6976963877677917,
0.3363126516342163,
0.3522143065929413,
0.6409688591957092,
0.9947689771652222,
0.4036443829536438,
0.9874423146247864,
0.198884978890419,
-0.001883574528619647,
-0.22303268313407898,
0.6505131125450134,
0.1942366659641266,
0.4588533341884613,
-1.110110878944397,
0.05537233129143715,
-0.9550606608390808,
-0.23459433019161224,
-0.5846961140632629,
0.11648814380168915,
-0.6348179578781128,
-0.10552750527858734,
0.23414216935634613,
-0.5217240452766418,
0.8830324411392212,
0.6278516054153442,
0.8794963955879211,
1.154626488685608,
0.8811584115028381,
1.3742344379425049,
0.0013833669945597649,
1.183777093887329,
1.236268162727356,
0.6741870045661926,
-0.40988314151763916,
-0.07625970244407654,
-0.12833383679389954,
-0.1263313740491867,
-0.9113436341285706,
-0.5769266486167908,
-0.5020799040794373,
0.2872130572795868,
-0.1193302646279335,
0.051435861736536026,
0.5741074681282043,
0.9434036016464233,
1.4419653415679932,
1.4149854183197021,
1.372450351715088,
1.328041911125183,
-0.48470669984817505,
1.1245766878128052,
0.20072142779827118,
1.2556546926498413,
-0.023168662562966347,
-0.5728554129600525,
0.003037379588931799,
-0.23164530098438263,
-0.8865780830383301,
-0.0010710505302995443,
-0.12788845598697662,
0.1425265669822693,
0.6675330996513367,
0.5460042953491211,
0.901313304901123,
0.945213794708252,
0.669986367225647,
1.2043920755386353,
0.8367606997489929,
1.2889519929885864,
-0.5794687867164612,
0.723864734172821,
-0.19198296964168549,
1.341660499572754,
-0.41921091079711914,
0.07179870456457138,
0.27789628505706787,
0.003709197510033846,
0.18566231429576874,
-0.4079318642616272,
0.20877714455127716,
-0.3535130023956299,
0.3603680431842804,
0.6286526918411255,
1.4089367389678955,
0.9004070162773132,
0.934583842754364,
0.9494833946228027,
1.1896443367004395,
1.2298882007598877,
-0.0559992678463459,
-0.1267615109682083,
-0.8425958752632141,
1.1961780786514282,
-0.5240882039070129,
0.5713120102882385,
0.6301128268241882,
0.18786932528018951,
-0.20960821211338043,
0.3096940815448761,
-0.051459964364767075,
0.45696136355400085,
0.7782992124557495,
0.5152472257614136,
0.7114264369010925,
0.6297524571418762,
0.9769810438156128,
0.07466975599527359,
0.0703081339597702,
0.9650352001190186,
-0.1365041881799698,
-0.8465286493301392,
-0.8337959051132202,
-0.40586504340171814,
0.9974926710128784,
0.5073449015617371,
-0.8744789361953735,
0.34475791454315186,
-0.08599300682544708,
0.8374577760696411,
0.41114428639411926,
0.053679682314395905,
0.5979822278022766,
0.899660050868988,
-0.2898470461368561,
-0.27407732605934143,
-0.49144601821899414,
0.2123636156320572,
-0.4481363892555237,
-0.23102831840515137,
0.15820065140724182,
-1.1764214038848877,
-1.2612066268920898,
-0.3114435076713562,
0.8424190878868103,
0.3477627635002136,
0.9072251319885254,
0.751478374004364,
-0.26006367802619934,
0.08285154402256012,
-0.39572250843048096,
0.1355595886707306,
0.00891929678618908,
0.3502693772315979,
-0.09089840948581696,
-0.5964071750640869,
-0.42753294110298157,
-0.9235694408416748,
-0.3885207176208496,
-0.5986596941947937,
-0.768949568271637,
0.24717558920383453,
-0.7443510890007019,
-0.6882625222206116,
-0.2006918340921402,
0.8934618830680847,
-0.41864532232284546,
0.306402325630188,
0.7476745247840881,
0.09925480931997299,
0.19005776941776276,
-0.024856192991137505,
0.7979829907417297,
0.6875270009040833,
-0.3951003849506378,
0.6783849596977234,
0.18603816628456116,
-0.7842507362365723,
0.6742908358573914,
0.6499669551849365,
0.918073296546936,
-0.5002454519271851,
1.216107964515686,
0.8909105658531189,
0.6188066005706787,
0.840234100818634,
-0.7983343601226807,
-1.0663707256317139,
0.1158219575881958,
-0.041625600308179855,
-0.42818522453308105,
-0.6920322775840759,
-0.8171529173851013,
0.1128421425819397,
-1.0594289302825928,
-0.4151531159877777,
-0.48944297432899475,
-1.1687790155410767,
-1.1723977327346802,
-0.6194528937339783,
-0.8994165062904358,
0.09586307406425476,
0.11391778290271759,
-0.5125714540481567,
1.264366865158081,
-0.43941161036491394,
-0.09845715761184692,
0.8130775094032288,
0.4714009463787079,
0.05458637699484825,
-0.0011975576635450125,
-0.8053545951843262,
-0.6674675345420837,
-1.0291380882263184,
-0.36741331219673157,
-0.8814748525619507,
1.0536909103393555,
-1.354200839996338,
1.3393571376800537,
0.8831523060798645,
1.1960337162017822,
0.21907199919223785,
0.331794410943985,
1.1814628839492798,
-0.6034896373748779,
-1.0625580549240112,
-0.4655229151248932,
-0.09131385385990143,
0.12695543467998505,
-0.19730867445468903,
-0.6666584014892578,
-1.1749050617218018,
-0.7397794127464294,
-0.5596379637718201,
-1.1101834774017334,
0.033360231667757034,
0.43268194794654846,
-0.3544120192527771,
-1.3419189453125,
-0.31099599599838257,
0.4814259707927704,
1.0726569890975952,
1.2350269556045532,
1.069932460784912,
-0.13788539171218872,
0.8794074058532715,
0.1118943840265274,
0.578197717666626,
0.00862057600170374,
-0.7703072428703308,
-0.3936803638935089,
-0.34856998920440674,
-0.3897494077682495,
0.2303866744041443,
-1.0141925811767578,
-0.17117024958133698,
-1.2712700366973877,
-1.3510351181030273,
-0.025684736669063568,
-0.4274519085884094,
0.003636765293776989,
-0.8887197971343994,
1.0626710653305054,
0.8082476258277893,
0.8474656939506531,
-0.02681146003305912,
-0.0799470990896225
]
},
{
"hoverinfo": [
"x",
"text"
],
"marker": {
"color": [
0.4377172633374634,
0.4492132134614577,
0.4290659090094704,
0.42459415797712685,
0.8166543632257885,
0.7642769716474667,
0.7900718620205778,
0.8146431906377096,
0.8283777276624016,
0.8300912633218873,
0.7753434855946315,
0.8275070880723789,
0.6455754734985245,
0.42914318257445583,
0.4345307898064401,
0.43152037045490854,
0.44728622241842003,
0.42848587703917085,
0.43491872103846035,
0.4420335337055596,
0.4297497424894942,
0.43117605047834073,
0.7835323064054711,
0.7734284471312749,
0.7822553579028322,
0.798222199889987,
0.7988187072015297,
0.8188166356453523,
0.8241796405171458,
0.820270344624028,
0.8229868400561207,
0.9031418679323882,
0.4543067929377054,
0.46986791559940494,
0.4386711637480876,
0.4185975839063692,
0.43319857978002374,
0.435874694037227,
0.4102128575745379,
0.4350881469129252,
0.44145422228927444,
0.4587844476757805,
0.44624341410971347,
0.8087934344208463,
0.7930063050134786,
0.7696044395638976,
0.8156102063625026,
0.7917141277319664,
0.8265793276643714,
0.8219563235252967,
0.8636961562910768,
0.44138379703418473,
0.417876397975417,
0.6778624249130416,
0.44711357977360705,
0.43475832141778686,
0.4262372012123729,
0.42071219573070967,
0.4211368179528024,
0.4412241666150914,
0.4397164143125833,
0.4819468029297693,
0.4295993998692786,
0.7073322119303123,
0.7860865095550178,
0.547130990759537,
0.8099898457104662,
0.8120252168271178,
0.8275291891455346,
0.7418829357149954,
0.19725891566289322,
0.42240068328964214,
0.3952816702571416,
0.4286320571445105,
0.4292877238161828,
0.42908708825159264,
0.4272519500216602,
0.4309978770439325,
0.4197026905142896,
0.4309598350842256,
0.4390162337522078,
0.46011195689851897,
0.5513302652903533,
0.7863421425344785,
0.8151488351970952,
0.7921030756938193,
0.8127398893439248,
0.8250695069108591,
0.8217464680424419,
0.9613347853553715,
0.820815985405118,
0.9677305457355418,
0.8289164116477494,
0.41933225167824273,
0.4224550154026812,
0.44798703972443243,
0.44226604344101417,
0.44289937849099537,
0.43267454222253554,
0.43412176687364995,
0.46189374234292274,
0.5221456845514715,
0.7714477490154434,
0.8130161412709389,
0.8185038208437927,
0.8110015960454302,
0.820501286425185,
0.8226500468941621,
0.8215860194835347,
0.8226823450464175,
0.14613367416575185,
0.12001331578028962,
0.875363348642404,
0.05651893123123092,
0.42520538339957725,
0.4059941509893054,
0.43025947798674435,
0.4311931656006412,
0.44813769348463034,
0.44689134663892716,
0.4807889566964691,
0.5376305028753856,
0.7912030099955232,
0.8202132282171152,
0.8197541185944095,
0.8217995573378885,
0.8167703390506282,
0.8155891134818718,
0.825560325028633,
0.8370225502129578,
0.1982306661692535,
0.12001331578028812,
0.1353661723406147,
0.37208227367635816,
0.1422115170196262,
0.41941075163049796,
0.4224111808248143,
0.43056315966096553,
0.4368246119539641,
0.4367106948797752,
0.48584023054127307,
0.6503605006948869,
0.8083839750936286,
0.7934622423352293,
0.8183756284654199,
0.8120154237908794,
0.8167389241256489,
0.8254886404844122,
0.8263369551870301,
0.19725891566288728,
0.06453589376401131,
0.2979185233044708,
0.350716208843389,
0.415626244934272,
0.4526582756910583,
0.4453282849303284,
0.43811168179892956,
0.430671391396414,
0.47767132735123496,
0.7777183742679299,
0.5283636486494807,
0.781962430761323,
0.7913519434615472,
0.7884943139749878,
0.8194193111448407,
0.814715081591312,
0.815556903410991,
0.8301978773944094,
0.8286091193911708,
0.04628541879604148,
0.07446342964383174,
0.05986520219486624,
0.15238247759639878,
0.3507162088433889,
0.3858224443275292,
0.45250739537668183,
0.4393559617451754,
0.43903114168769025,
0.46167485450325474,
0.5221456845514739,
0.5236170112339348,
0.7734849643640467,
0.7843097446581383,
0.793708077079124,
0.8135872952151085,
0.8140110771399678,
0.8280827821032517,
0.8706835041603087,
0.8281327050269169,
0.12243812133917364,
0.15238247759639206,
0.15238247759639623,
0.1639267661251205,
0.4191319569760329,
0.3944078059868597,
0.34273453329701814,
0.4469112512147466,
0.43708321434855624,
0.43654778401807104,
0.5207031090012131,
0.6058333474068378,
0.7851282847667511,
0.7843288806190135,
0.7960945153457468,
0.7957960559948101,
0.8169541563051235,
0.827393322245698,
0.8259334065348952,
0.9523360379416186,
0.06501464203748736,
0.1576134251221091,
0.45887863720555067,
0.16986006384912394,
0.40934109751899284,
0.44588896716635246,
0.4453041343283644,
0.44787191778362073,
0.5894397366974898,
0.5150838949889492,
0.5137431457851211,
0.5207031090012141,
0.7771935156495653,
0.7842055603128844,
0.8147150815913091,
0.8200233967279661,
0.8254134392023381,
0.8493874278245057,
0.11531962612327495,
0.027604001892259367,
0.034599399552202925,
0.9752189037660994,
0.34786618033020134,
0.4435217328794243,
0.42116981494876254,
0.46261481466110355,
0.43141428475460775,
0.44799707128035976,
0.4419382812762303,
0.4629087812220428,
0.47080821340620793,
0.7819311635709869,
0.776246033263525,
0.7952581096351619,
0.8004228554285588,
0.8176657063130299,
0.8249979758606611,
0.8738436641649512,
0.8888706856847493,
0.8753633486424008,
0.9781290012794078,
0.3088371610164674,
0.4292224246766728,
0.44093727744409533,
0.4355279005130658,
0.43102774542346767,
0.4331985797800198,
0.599407690991653,
0.4471728325805197,
0.49013740526312527,
0.76269632029966,
0.765299045691493,
0.791173400584449,
0.820759966917,
0.8119869383120495,
0.8195086813709742,
0.8490203774357994,
0.8612868481746491,
0.8318385918445397,
0.8565177649783442,
0.41663641765331866,
0.25063727819497483,
0.4066316289119862,
0.4240449952256064,
0.43323003135017796,
0.427102501083953,
0.4279723530582446,
0.43783992084252477,
0.4614684591613853,
0.5077859479734377,
0.4609580698490365,
0.4677629021962961,
0.7871430495873287,
0.799885479333166,
0.8205763931267733,
0.825143478593795,
0.8280444610908044,
0.8289746853452495,
0.821083580289045,
0.4579506689219485,
0.8397752273498527,
0.4215154588081146,
0.4307772114055979,
0.43041388033428973,
0.41289095640117013,
0.4367185286946936,
0.43267454222253543,
0.43757106297826165,
0.462471902126799,
0.4632380650763933,
0.7773642386041983,
0.7874385226913008,
0.8104248396639004,
0.7973746906724191,
0.8140274525227221,
0.8241011163154555,
0.8216048438470496,
0.8888706856847501,
0.39528167025714533,
0.19453423964899075,
0.43130763689342444,
0.4265479849817038,
0.43836803408645875,
0.4420335337055601,
0.44141903497908536,
0.44735001456776424,
0.44742113798534067,
0.44388499168775286,
0.44321511440745465,
0.4607326302426874,
0.7626963202996604,
0.8119818652684339,
0.8074384248433705,
0.8193683599265762,
0.820825202234154,
0.8193753739795766,
0.8227199203808779,
0.6164190205180087,
0.4258665461426718,
0.4925830931448935,
0.5019461045872406,
0.42483406573374644,
0.42988543838109705,
0.430167961454272,
0.4286913363092148,
0.4476075290592042,
0.4427585930764246,
0.4347583214177885,
0.44813769348463006,
0.457330192484543,
0.7198065048547131,
0.8083678368028399,
0.8011376324116217,
0.8246719185291118,
0.8206312045749078,
0.8223329093583789,
0.8101284689462809,
0.8216489446876212,
0.7101026488070707,
0.45094229721519263,
0.454697749276852,
0.4300357931571293,
0.44956570076277746,
0.4359887445264467,
0.44962744659043313,
0.4436621346887161,
0.4360190751176205,
0.4479970712803596,
0.40805683693599504,
0.7546816721553669,
0.6362553598603741,
0.7850979031992746,
0.8253594438590104,
0.8010586291498472,
0.8237736319216415,
0.802333164858281,
0.4916546129668098,
0.822026247210661,
0.7915043930181779,
0.695320216520304,
0.4388115182879679,
0.43506296127635635,
0.428572599647478,
0.4331796759354896,
0.4420335337055601,
0.4572297847899404,
0.4445115495548605,
0.40233461482228594,
0.4410812013815659,
0.47508057555040456,
0.6164190205180088,
0.914728261717124,
0.821413168946278,
0.8124741577183843,
0.7940370891797885,
0.8018167770625826,
0.69992904436133,
0.8268881156364654,
0.8195219967936265,
0.534243494106039,
0.42677546588999293,
0.4301738607599348,
0.4437899285034892,
0.4364114976954571,
0.4384795807360036,
0.431351950612901,
0.4388459852410693,
0.4414662449166189,
0.4624446498638085,
0.6723229626656497,
0.67786242491304
],
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"size": 5,
"sizemode": "diameter"
},
"mode": "markers",
"name": "decoding",
"scene": "scene3",
"text": [
0.4377172633374634,
0.4492132134614577,
0.4290659090094704,
0.42459415797712685,
0.8166543632257885,
0.7642769716474667,
0.7900718620205778,
0.8146431906377096,
0.8283777276624016,
0.8300912633218873,
0.7753434855946315,
0.8275070880723789,
0.6455754734985245,
0.42914318257445583,
0.4345307898064401,
0.43152037045490854,
0.44728622241842003,
0.42848587703917085,
0.43491872103846035,
0.4420335337055596,
0.4297497424894942,
0.43117605047834073,
0.7835323064054711,
0.7734284471312749,
0.7822553579028322,
0.798222199889987,
0.7988187072015297,
0.8188166356453523,
0.8241796405171458,
0.820270344624028,
0.8229868400561207,
0.9031418679323882,
0.4543067929377054,
0.46986791559940494,
0.4386711637480876,
0.4185975839063692,
0.43319857978002374,
0.435874694037227,
0.4102128575745379,
0.4350881469129252,
0.44145422228927444,
0.4587844476757805,
0.44624341410971347,
0.8087934344208463,
0.7930063050134786,
0.7696044395638976,
0.8156102063625026,
0.7917141277319664,
0.8265793276643714,
0.8219563235252967,
0.8636961562910768,
0.44138379703418473,
0.417876397975417,
0.6778624249130416,
0.44711357977360705,
0.43475832141778686,
0.4262372012123729,
0.42071219573070967,
0.4211368179528024,
0.4412241666150914,
0.4397164143125833,
0.4819468029297693,
0.4295993998692786,
0.7073322119303123,
0.7860865095550178,
0.547130990759537,
0.8099898457104662,
0.8120252168271178,
0.8275291891455346,
0.7418829357149954,
0.19725891566289322,
0.42240068328964214,
0.3952816702571416,
0.4286320571445105,
0.4292877238161828,
0.42908708825159264,
0.4272519500216602,
0.4309978770439325,
0.4197026905142896,
0.4309598350842256,
0.4390162337522078,
0.46011195689851897,
0.5513302652903533,
0.7863421425344785,
0.8151488351970952,
0.7921030756938193,
0.8127398893439248,
0.8250695069108591,
0.8217464680424419,
0.9613347853553715,
0.820815985405118,
0.9677305457355418,
0.8289164116477494,
0.41933225167824273,
0.4224550154026812,
0.44798703972443243,
0.44226604344101417,
0.44289937849099537,
0.43267454222253554,
0.43412176687364995,
0.46189374234292274,
0.5221456845514715,
0.7714477490154434,
0.8130161412709389,
0.8185038208437927,
0.8110015960454302,
0.820501286425185,
0.8226500468941621,
0.8215860194835347,
0.8226823450464175,
0.14613367416575185,
0.12001331578028962,
0.875363348642404,
0.05651893123123092,
0.42520538339957725,
0.4059941509893054,
0.43025947798674435,
0.4311931656006412,
0.44813769348463034,
0.44689134663892716,
0.4807889566964691,
0.5376305028753856,
0.7912030099955232,
0.8202132282171152,
0.8197541185944095,
0.8217995573378885,
0.8167703390506282,
0.8155891134818718,
0.825560325028633,
0.8370225502129578,
0.1982306661692535,
0.12001331578028812,
0.1353661723406147,
0.37208227367635816,
0.1422115170196262,
0.41941075163049796,
0.4224111808248143,
0.43056315966096553,
0.4368246119539641,
0.4367106948797752,
0.48584023054127307,
0.6503605006948869,
0.8083839750936286,
0.7934622423352293,
0.8183756284654199,
0.8120154237908794,
0.8167389241256489,
0.8254886404844122,
0.8263369551870301,
0.19725891566288728,
0.06453589376401131,
0.2979185233044708,
0.350716208843389,
0.415626244934272,
0.4526582756910583,
0.4453282849303284,
0.43811168179892956,
0.430671391396414,
0.47767132735123496,
0.7777183742679299,
0.5283636486494807,
0.781962430761323,
0.7913519434615472,
0.7884943139749878,
0.8194193111448407,
0.814715081591312,
0.815556903410991,
0.8301978773944094,
0.8286091193911708,
0.04628541879604148,
0.07446342964383174,
0.05986520219486624,
0.15238247759639878,
0.3507162088433889,
0.3858224443275292,
0.45250739537668183,
0.4393559617451754,
0.43903114168769025,
0.46167485450325474,
0.5221456845514739,
0.5236170112339348,
0.7734849643640467,
0.7843097446581383,
0.793708077079124,
0.8135872952151085,
0.8140110771399678,
0.8280827821032517,
0.8706835041603087,
0.8281327050269169,
0.12243812133917364,
0.15238247759639206,
0.15238247759639623,
0.1639267661251205,
0.4191319569760329,
0.3944078059868597,
0.34273453329701814,
0.4469112512147466,
0.43708321434855624,
0.43654778401807104,
0.5207031090012131,
0.6058333474068378,
0.7851282847667511,
0.7843288806190135,
0.7960945153457468,
0.7957960559948101,
0.8169541563051235,
0.827393322245698,
0.8259334065348952,
0.9523360379416186,
0.06501464203748736,
0.1576134251221091,
0.45887863720555067,
0.16986006384912394,
0.40934109751899284,
0.44588896716635246,
0.4453041343283644,
0.44787191778362073,
0.5894397366974898,
0.5150838949889492,
0.5137431457851211,
0.5207031090012141,
0.7771935156495653,
0.7842055603128844,
0.8147150815913091,
0.8200233967279661,
0.8254134392023381,
0.8493874278245057,
0.11531962612327495,
0.027604001892259367,
0.034599399552202925,
0.9752189037660994,
0.34786618033020134,
0.4435217328794243,
0.42116981494876254,
0.46261481466110355,
0.43141428475460775,
0.44799707128035976,
0.4419382812762303,
0.4629087812220428,
0.47080821340620793,
0.7819311635709869,
0.776246033263525,
0.7952581096351619,
0.8004228554285588,
0.8176657063130299,
0.8249979758606611,
0.8738436641649512,
0.8888706856847493,
0.8753633486424008,
0.9781290012794078,
0.3088371610164674,
0.4292224246766728,
0.44093727744409533,
0.4355279005130658,
0.43102774542346767,
0.4331985797800198,
0.599407690991653,
0.4471728325805197,
0.49013740526312527,
0.76269632029966,
0.765299045691493,
0.791173400584449,
0.820759966917,
0.8119869383120495,
0.8195086813709742,
0.8490203774357994,
0.8612868481746491,
0.8318385918445397,
0.8565177649783442,
0.41663641765331866,
0.25063727819497483,
0.4066316289119862,
0.4240449952256064,
0.43323003135017796,
0.427102501083953,
0.4279723530582446,
0.43783992084252477,
0.4614684591613853,
0.5077859479734377,
0.4609580698490365,
0.4677629021962961,
0.7871430495873287,
0.799885479333166,
0.8205763931267733,
0.825143478593795,
0.8280444610908044,
0.8289746853452495,
0.821083580289045,
0.4579506689219485,
0.8397752273498527,
0.4215154588081146,
0.4307772114055979,
0.43041388033428973,
0.41289095640117013,
0.4367185286946936,
0.43267454222253543,
0.43757106297826165,
0.462471902126799,
0.4632380650763933,
0.7773642386041983,
0.7874385226913008,
0.8104248396639004,
0.7973746906724191,
0.8140274525227221,
0.8241011163154555,
0.8216048438470496,
0.8888706856847501,
0.39528167025714533,
0.19453423964899075,
0.43130763689342444,
0.4265479849817038,
0.43836803408645875,
0.4420335337055601,
0.44141903497908536,
0.44735001456776424,
0.44742113798534067,
0.44388499168775286,
0.44321511440745465,
0.4607326302426874,
0.7626963202996604,
0.8119818652684339,
0.8074384248433705,
0.8193683599265762,
0.820825202234154,
0.8193753739795766,
0.8227199203808779,
0.6164190205180087,
0.4258665461426718,
0.4925830931448935,
0.5019461045872406,
0.42483406573374644,
0.42988543838109705,
0.430167961454272,
0.4286913363092148,
0.4476075290592042,
0.4427585930764246,
0.4347583214177885,
0.44813769348463006,
0.457330192484543,
0.7198065048547131,
0.8083678368028399,
0.8011376324116217,
0.8246719185291118,
0.8206312045749078,
0.8223329093583789,
0.8101284689462809,
0.8216489446876212,
0.7101026488070707,
0.45094229721519263,
0.454697749276852,
0.4300357931571293,
0.44956570076277746,
0.4359887445264467,
0.44962744659043313,
0.4436621346887161,
0.4360190751176205,
0.4479970712803596,
0.40805683693599504,
0.7546816721553669,
0.6362553598603741,
0.7850979031992746,
0.8253594438590104,
0.8010586291498472,
0.8237736319216415,
0.802333164858281,
0.4916546129668098,
0.822026247210661,
0.7915043930181779,
0.695320216520304,
0.4388115182879679,
0.43506296127635635,
0.428572599647478,
0.4331796759354896,
0.4420335337055601,
0.4572297847899404,
0.4445115495548605,
0.40233461482228594,
0.4410812013815659,
0.47508057555040456,
0.6164190205180088,
0.914728261717124,
0.821413168946278,
0.8124741577183843,
0.7940370891797885,
0.8018167770625826,
0.69992904436133,
0.8268881156364654,
0.8195219967936265,
0.534243494106039,
0.42677546588999293,
0.4301738607599348,
0.4437899285034892,
0.4364114976954571,
0.4384795807360036,
0.431351950612901,
0.4388459852410693,
0.4414662449166189,
0.4624446498638085,
0.6723229626656497,
0.67786242491304
],
"type": "scatter3d",
"x": [
-2.636749029159546,
-0.5232290029525757,
-2.12611985206604,
-1.527305245399475,
1.4569270610809326,
1.345768928527832,
1.7701541185379028,
3.0743472576141357,
1.8496540784835815,
2.0838444232940674,
0.8768432140350342,
1.8071777820587158,
0.15131445229053497,
-1.0906720161437988,
-2.275883197784424,
-2.5951380729675293,
-1.9628797769546509,
-2.656909227371216,
-2.18230938911438,
-2.475834608078003,
-2.189849376678467,
-2.4870805740356445,
1.9005972146987915,
1.4525853395462036,
1.643107295036316,
2.013201951980591,
1.587700605392456,
3.01481294631958,
2.2142410278320312,
1.8162919282913208,
2.277534008026123,
1.3643985986709595,
-0.5854825377464294,
-0.854220986366272,
-1.816042184829712,
-1.8970468044281006,
-2.78483510017395,
-2.6056785583496094,
-1.4273104667663574,
-2.3762331008911133,
-2.2689738273620605,
-1.7684072256088257,
-2.292423725128174,
2.3182098865509033,
1.552763819694519,
1.5313694477081299,
2.7651844024658203,
1.4876394271850586,
2.6307759284973145,
2.6701016426086426,
1.5714685916900635,
-1.0012905597686768,
-1.1992813348770142,
0.19620496034622192,
-2.33363938331604,
-2.502152919769287,
-2.4091274738311768,
-1.663210153579712,
-1.9905799627304077,
-1.5104776620864868,
-2.309781551361084,
-0.6541293263435364,
-2.1944990158081055,
0.5775707960128784,
1.549149513244629,
-0.21101832389831543,
2.2964460849761963,
2.3633649349212646,
2.2819042205810547,
0.5238966941833496,
-0.3111248016357422,
-1.1424263715744019,
-1.1895091533660889,
-1.487895131111145,
-2.6841604709625244,
-1.8036202192306519,
-2.1683895587921143,
-2.757735252380371,
-2.183826446533203,
-2.783350944519043,
-2.454280138015747,
-1.766473650932312,
-0.2965039610862732,
1.7607393264770508,
2.805992364883423,
1.9331578016281128,
1.8615463972091675,
3.0641026496887207,
2.9604053497314453,
0.876614511013031,
2.064030885696411,
0.6317029595375061,
2.5760114192962646,
-2.1109163761138916,
-2.2257227897644043,
-1.653878092765808,
-2.4250428676605225,
-2.4616878032684326,
-2.8108439445495605,
-2.666435480117798,
-1.5650197267532349,
-0.3328011631965637,
1.5612006187438965,
2.5954842567443848,
3.02268648147583,
2.890842914581299,
3.1330513954162598,
3.1326441764831543,
3.2236509323120117,
2.8523616790771484,
-0.16439418494701385,
0.10609368234872818,
1.8729991912841797,
0.4241522252559662,
-2.2547597885131836,
-1.3061115741729736,
-2.600668430328369,
-2.445377826690674,
-1.9946590662002563,
-1.2770472764968872,
-1.328853726387024,
-0.23924320936203003,
1.9268301725387573,
2.666281223297119,
3.1955409049987793,
3.2047297954559326,
2.8159854412078857,
1.9713780879974365,
2.4676706790924072,
2.268953800201416,
-0.7109352946281433,
0.06688077002763748,
-0.14551231265068054,
-1.2189176082611084,
-0.3686046302318573,
-2.085026264190674,
-2.372225522994995,
-2.665112257003784,
-2.549307346343994,
-2.495276927947998,
-0.884303867816925,
0.2018129527568817,
2.4002935886383057,
2.090407609939575,
3.082230567932129,
2.780928373336792,
2.922239303588867,
2.7081258296966553,
2.0047130584716797,
-0.27897921204566956,
0.5033806562423706,
-0.866249680519104,
-1.055198311805725,
-1.9911868572235107,
-1.9282835721969604,
-2.3161332607269287,
-2.5586628913879395,
-2.820148229598999,
-1.2765735387802124,
1.4933128356933594,
-0.20843343436717987,
1.6894797086715698,
1.9140114784240723,
1.9602328538894653,
3.0939362049102783,
2.978870153427124,
3.0775411128997803,
2.3704898357391357,
2.316087484359741,
0.6358213424682617,
0.3318796455860138,
0.5168808102607727,
-0.46616330742836,
-1.062654733657837,
-1.3454877138137817,
-1.57883882522583,
-1.8256975412368774,
-2.5222644805908203,
-1.7336790561676025,
-0.33455175161361694,
-0.2581677734851837,
1.4023677110671997,
1.7895984649658203,
2.1219887733459473,
2.967463731765747,
3.0083870887756348,
2.6559736728668213,
1.9694633483886719,
2.351221799850464,
-0.08939039707183838,
-0.3357005715370178,
-0.39171260595321655,
-0.5122706294059753,
-2.1279990673065186,
-1.3979371786117554,
-1.2050074338912964,
-2.1696107387542725,
-2.569901704788208,
-2.320657253265381,
-0.4031272530555725,
-0.009206417948007584,
1.8169519901275635,
1.7767773866653442,
2.2835114002227783,
2.2570948600769043,
2.7004971504211426,
2.391049385070801,
2.4999215602874756,
0.8948326110839844,
0.47712597250938416,
-0.4832494258880615,
-1.5466992855072021,
-0.5620824694633484,
-1.3364862203598022,
-2.3651628494262695,
-2.2087817192077637,
-1.7438212633132935,
-0.07085371017456055,
-0.7388221025466919,
-0.5298848748207092,
-0.3381362557411194,
1.5063271522521973,
1.8838891983032227,
2.9630093574523926,
3.2252156734466553,
2.635326623916626,
2.15458083152771,
-0.031721197068691254,
0.6513852477073669,
0.6707361936569214,
0.6062929034233093,
-1.202601671218872,
-1.877831220626831,
-2.2017133235931396,
-1.6520916223526,
-2.8384134769439697,
-2.120011329650879,
-2.1783783435821533,
-1.452439546585083,
-1.2341161966323853,
1.605832815170288,
1.6371420621871948,
2.0362424850463867,
2.531794309616089,
2.940856456756592,
2.5741639137268066,
1.7416201829910278,
1.5101065635681152,
1.8209607601165771,
0.7662189602851868,
-0.8282843232154846,
-2.3237295150756836,
-1.5714404582977295,
-2.411151170730591,
-2.5890705585479736,
-2.8010451793670654,
-0.012580987997353077,
-1.2551218271255493,
-0.7759292125701904,
1.254787802696228,
1.3671361207962036,
2.0056381225585938,
2.4979350566864014,
2.92318058013916,
3.0899829864501953,
2.2052528858184814,
1.9483743906021118,
2.034580707550049,
1.7920607328414917,
-2.0073401927948,
-0.5849555134773254,
-1.62759268283844,
-2.31774640083313,
-2.539726972579956,
-2.1547820568084717,
-2.136880397796631,
-2.333404541015625,
-1.456567645072937,
-0.6688680052757263,
-0.9888973832130432,
-1.1897625923156738,
1.4709984064102173,
2.401407241821289,
3.2323243618011475,
2.608628749847412,
2.704803943634033,
2.4618093967437744,
3.1517574787139893,
-0.841175377368927,
1.7388787269592285,
-1.8080576658248901,
-2.341444253921509,
-2.659764289855957,
-1.333786964416504,
-2.5701818466186523,
-2.8970787525177,
-2.4450204372406006,
-1.6987088918685913,
-1.3139636516571045,
1.6273058652877808,
1.5312578678131104,
2.156438112258911,
2.0231175422668457,
3.0327723026275635,
2.8761532306671143,
2.3773558139801025,
1.6250115633010864,
-1.2280019521713257,
-0.4596274495124817,
-2.451291561126709,
-2.5699734687805176,
-1.8156791925430298,
-2.422438859939575,
-1.5591089725494385,
-1.1534817218780518,
-2.124786853790283,
-2.3588247299194336,
-2.4486005306243896,
-1.4898719787597656,
1.1692171096801758,
2.4371566772460938,
2.675421714782715,
3.028947353363037,
3.2762906551361084,
3.210784673690796,
2.798219680786133,
0.0778750628232956,
-1.3871999979019165,
-0.42429912090301514,
-0.29750674962997437,
-1.7927029132843018,
-1.8415130376815796,
-2.716629981994629,
-2.6533467769622803,
-2.2065868377685547,
-2.449666976928711,
-2.4294679164886475,
-2.0667805671691895,
-1.7843027114868164,
0.15915553271770477,
1.5144495964050293,
1.846925139427185,
2.023528575897217,
3.118455171585083,
2.877985715866089,
2.1591796875,
2.6429860591888428,
0.6254458427429199,
-0.9037439823150635,
-1.6764146089553833,
-2.3950929641723633,
-1.7713427543640137,
-1.7855433225631714,
-1.9513452053070068,
-2.4264798164367676,
-2.507366895675659,
-2.125393867492676,
-1.2815886735916138,
1.0583539009094238,
0.12755917012691498,
1.1940327882766724,
2.0802133083343506,
1.6228529214859009,
2.4104721546173096,
2.2607128620147705,
-0.3727504014968872,
3.060093402862549,
1.9437981843948364,
0.27943891286849976,
-2.341064214706421,
-2.351708173751831,
-2.4084227085113525,
-2.444552421569824,
-2.3870577812194824,
-1.5597811937332153,
-2.083660364151001,
-1.435258150100708,
-1.3379019498825073,
-0.7522804141044617,
0.023404274135828018,
0.8143199682235718,
1.4998400211334229,
2.33652400970459,
2.126136302947998,
1.7701870203018188,
0.46673038601875305,
2.1971495151519775,
2.6723897457122803,
-0.20574593544006348,
-1.903565764427185,
-2.3365414142608643,
-2.353273391723633,
-2.471548318862915,
-2.635589122772217,
-2.775251865386963,
-1.4211307764053345,
-1.5380645990371704,
-1.002173900604248,
0.16280396282672882,
0.26799845695495605
],
"y": [
0.3073514699935913,
-1.2182079553604126,
-0.5640690922737122,
-1.1190026998519897,
-0.6362850666046143,
1.5776411294937134,
1.3202075958251953,
0.2799534499645233,
-0.8010665774345398,
-0.8130486011505127,
-0.727885901927948,
-0.8682217001914978,
0.838338315486908,
-1.2753883600234985,
-0.11090821772813797,
-0.5063751935958862,
0.9768651723861694,
-0.6977108120918274,
-0.28420016169548035,
0.5518101453781128,
-0.4540514647960663,
-0.16861146688461304,
1.5795468091964722,
1.7228995561599731,
1.6310762166976929,
0.8831251859664917,
0.4867601990699768,
-0.2729418873786926,
-0.16644050180912018,
-0.7189112901687622,
-0.7125007510185242,
-1.5052460432052612,
-1.1249767541885376,
-0.7815974950790405,
-0.09239272773265839,
-1.3314956426620483,
0.06283213198184967,
0.21165552735328674,
-1.530548334121704,
0.008618169464170933,
0.9531002640724182,
1.4196105003356934,
0.9770189523696899,
0.2491334229707718,
0.58216792345047,
1.590476155281067,
0.06688202917575836,
0.5912284851074219,
-0.5568219423294067,
-0.6190695762634277,
-1.3248250484466553,
-1.1945958137512207,
-1.310115098953247,
-0.7142967581748962,
0.9624256491661072,
0.030214929953217506,
-0.7071700692176819,
-1.329491376876831,
-1.2089256048202515,
0.2627672255039215,
0.7363324761390686,
0.7688787579536438,
-0.49741777777671814,
1.268431544303894,
0.9928838014602661,
1.1063992977142334,
0.165899395942688,
0.10362887382507324,
-0.8707314729690552,
-0.6509326696395874,
-1.755077838897705,
-1.3063374757766724,
-1.6163513660430908,
-0.6578387022018433,
-0.680621325969696,
-0.22083736956119537,
-0.8573488593101501,
-0.35041534900665283,
-1.0925333499908447,
-0.3843792676925659,
0.7898856997489929,
1.3367650508880615,
0.9189524054527283,
1.3290361166000366,
0.10131890326738358,
1.3698934316635132,
0.1286434382200241,
-0.7253291010856628,
-0.1618862748146057,
-1.455517053604126,
0.03764783591032028,
-1.3536484241485596,
-1.0519436597824097,
-1.102368712425232,
-1.07437002658844,
0.8636431694030762,
0.7749217748641968,
0.8868018984794617,
0.059267204254865646,
0.20887108147144318,
1.554880976676941,
1.7328338623046875,
1.6574392318725586,
0.09423288702964783,
-0.23941655457019806,
0.6016597747802734,
-0.5159286260604858,
-0.45896902680397034,
-0.5988583564758301,
-0.6909195184707642,
-1.271100401878357,
-1.7230411767959595,
-1.2443057298660278,
-1.599233865737915,
-0.5496954321861267,
-1.645702600479126,
-0.601917028427124,
-0.2875460684299469,
1.0931456089019775,
0.5997875332832336,
1.566237211227417,
1.22966730594635,
1.2093254327774048,
-0.35968607664108276,
-0.43390196561813354,
-0.6137526631355286,
0.2991188168525696,
0.2652530372142792,
-0.843012273311615,
-1.1960004568099976,
-0.9314181804656982,
-1.6544055938720703,
-1.1788768768310547,
-1.625083088874817,
-1.1066349744796753,
-0.8767375349998474,
-0.8955783843994141,
-0.47516292333602905,
0.23044440150260925,
0.4380115568637848,
1.7157890796661377,
1.6329143047332764,
0.25993165373802185,
1.3270355463027954,
-0.13288581371307373,
0.5336033701896667,
0.28808435797691345,
-0.3909056782722473,
-0.07458841800689697,
-1.7592657804489136,
-1.5602681636810303,
-1.675264596939087,
-1.6740005016326904,
-1.0372251272201538,
1.2635679244995117,
0.9389786720275879,
0.2734259068965912,
-0.23117855191230774,
1.6118382215499878,
1.5225201845169067,
1.6244443655014038,
1.5461360216140747,
1.3863155841827393,
1.5131620168685913,
-0.0928322970867157,
0.4989480972290039,
0.15169233083724976,
-0.5453267693519592,
-0.6588094830513,
-1.554460883140564,
-1.43989896774292,
-1.7288960218429565,
-1.1654797792434692,
-1.6671503782272339,
-0.35512804985046387,
1.1739448308944702,
0.06626895070075989,
0.7338117361068726,
1.3960143327713013,
1.5265229940414429,
1.664265751838684,
1.563443660736084,
1.4814398288726807,
1.424068570137024,
0.5690942406654358,
0.39433398842811584,
-0.9907390475273132,
-1.3041479587554932,
-0.4315612018108368,
-1.192265510559082,
-1.2926007509231567,
-1.2096853256225586,
-1.1455514430999756,
-1.0530451536178589,
-0.360250860452652,
-1.4914488792419434,
0.9946401119232178,
0.20970182120800018,
0.5077683329582214,
1.775773048400879,
1.6065752506256104,
1.460782766342163,
1.6805490255355835,
1.3331204652786255,
1.337679386138916,
0.24166934192180634,
-0.7490553259849548,
-0.2811664044857025,
-1.35236394405365,
-1.7132093906402588,
-1.2351900339126587,
1.3448354005813599,
-1.1301639080047607,
-1.459120750427246,
0.9142097234725952,
0.9922917485237122,
0.8919673562049866,
1.537003517150879,
1.755489468574524,
1.7933921813964844,
1.7519162893295288,
1.658876895904541,
1.5975285768508911,
0.45615020394325256,
-0.22323977947235107,
-0.6451533436775208,
-1.1315258741378784,
-1.2966467142105103,
-1.5909005403518677,
-1.5968538522720337,
-1.433286428451538,
-0.5971233248710632,
0.4708939492702484,
-0.9110822677612305,
1.4557346105575562,
-0.23283353447914124,
1.0522940158843994,
0.9501413106918335,
1.5699745416641235,
1.5931545495986938,
1.61350417137146,
1.5116722583770752,
1.2873518466949463,
1.1114286184310913,
0.258755624294281,
-0.2929762005805969,
-1.3466180562973022,
-1.4063233137130737,
-1.3217921257019043,
-1.4213918447494507,
-1.719537377357483,
-0.5935867428779602,
0.16192938387393951,
0.15584248304367065,
-0.30184030532836914,
0.0774451270699501,
1.5688303709030151,
0.5953820943832397,
1.7357265949249268,
1.6369752883911133,
1.5440952777862549,
1.5301169157028198,
0.026112958788871765,
0.6425432562828064,
-0.05458596348762512,
-1.1241093873977661,
-0.9194499850273132,
-1.255521297454834,
-1.309670329093933,
-1.1626633405685425,
-1.7420589923858643,
-1.4812431335449219,
-0.8494639992713928,
-0.25220823287963867,
-0.9375631213188171,
-0.8490588068962097,
0.470380038022995,
1.5222915410995483,
1.7011451721191406,
0.8031243681907654,
1.5918086767196655,
0.6896489262580872,
1.1773968935012817,
-0.3683306872844696,
-0.7142453789710999,
-0.9713537096977234,
-1.068410873413086,
-0.34815770387649536,
-0.9297611117362976,
-1.282157063484192,
-1.2368146181106567,
-0.27540120482444763,
-0.5067703127861023,
-1.4319669008255005,
0.19279606640338898,
-0.07041898369789124,
0.6292337775230408,
1.3997176885604858,
1.4670617580413818,
1.606366515159607,
0.9453895688056946,
0.490310937166214,
0.9830073118209839,
0.5542521476745605,
-0.6237378120422363,
-0.1365845501422882,
-1.4014512300491333,
-1.628750205039978,
-1.486925482749939,
-0.4462045431137085,
-0.8278690576553345,
-0.20497338473796844,
0.6053311228752136,
0.269463449716568,
-0.8390313982963562,
1.075843095779419,
0.7595785856246948,
0.7820119857788086,
1.5078366994857788,
1.6349693536758423,
0.1314404010772705,
0.7659013271331787,
-0.131573885679245,
-0.41338950395584106,
-0.3324352204799652,
-0.7138409614562988,
-0.5372509360313416,
-1.0307930707931519,
-0.9556679725646973,
-0.9986785650253296,
-1.0642783641815186,
-0.7952610850334167,
-0.5750700235366821,
-0.6735365986824036,
1.1381114721298218,
0.7539517879486084,
0.03860218822956085,
1.072481393814087,
1.114106297492981,
-0.934726357460022,
0.44154876470565796,
0.8167842030525208,
-0.6006396412849426,
-0.2947448790073395,
-0.6611872315406799,
0.3000542223453522,
-0.5400033593177795,
1.3366469144821167,
-1.0443168878555298,
1.308602213859558,
-0.31186729669570923,
1.1076242923736572,
-0.09007124602794647,
1.160498023033142,
0.8338593244552612,
-0.04935260862112045,
1.052345633506775,
-1.4882506132125854,
1.37422513961792,
1.3518725633621216,
0.030148740857839584,
-0.7327764630317688,
0.3653237223625183,
-0.7184453010559082,
0.582207441329956,
-1.045889973640442,
-0.625887393951416,
1.0746549367904663,
-0.5671799182891846,
0.25540608167648315,
-0.07326500862836838,
-0.48792997002601624,
-0.2127901166677475,
0.5802617073059082,
1.3357157707214355,
0.720526397228241,
-0.3667120635509491,
-0.7462166547775269,
0.9822026491165161,
-0.5295237898826599,
-1.1522475481033325,
-0.7522217631340027,
0.14334896206855774,
1.4512876272201538,
0.4850279986858368,
1.32559335231781,
-0.7918603420257568,
-0.31038686633110046,
1.708249568939209,
-1.0045711994171143,
-0.24398022890090942,
0.9027085900306702,
0.2922363877296448,
0.49757254123687744,
-0.21258603036403656,
0.23005519807338715,
0.2992172837257385,
0.8289351463317871,
-0.6940577030181885,
-0.795835018157959
],
"z": [
0.25247862935066223,
-0.5201209187507629,
-1.422930121421814,
-1.0521326065063477,
-0.05257199704647064,
-0.919045627117157,
-0.08603250980377197,
-0.3665373623371124,
0.28854358196258545,
0.41170501708984375,
-0.1361107975244522,
0.3039822578430176,
-0.6103042364120483,
-0.4989929795265198,
-0.6008402705192566,
-0.19286422431468964,
1.4104101657867432,
-0.8646129965782166,
0.4267890453338623,
0.5403592586517334,
-1.338730812072754,
-1.2566184997558594,
-0.6142240166664124,
-0.315213680267334,
0.19291117787361145,
-0.18949659168720245,
-0.24856673181056976,
-0.8636323809623718,
0.9624485969543457,
0.0007997429347597063,
-0.9066151976585388,
0.6343755722045898,
-0.5961406826972961,
-0.5652732849121094,
0.639112651348114,
-0.616364598274231,
-0.8310528993606567,
-0.4474818706512451,
-0.5239307284355164,
-0.3982047140598297,
-0.5110301375389099,
0.20601511001586914,
0.7897728085517883,
-1.2576290369033813,
-0.24336668848991394,
-0.22922076284885406,
-0.27425673604011536,
-0.21491196751594543,
0.5272048711776733,
-0.9698009490966797,
-0.34443172812461853,
-0.8786249756813049,
-0.9548211693763733,
0.030404360964894295,
0.6473854780197144,
-0.5080245733261108,
-0.00010515388567000628,
-0.76103675365448,
-0.9072094559669495,
0.9388377070426941,
-0.4464224874973297,
0.7568147778511047,
-1.4058395624160767,
-0.4622499942779541,
-0.008377118036150932,
-0.5297369360923767,
-1.1347864866256714,
-1.124145269393921,
0.3065145015716553,
-0.10182292014360428,
0.36198508739471436,
-0.8321139812469482,
-0.4040463864803314,
0.21685072779655457,
-0.5292386412620544,
0.9856938123703003,
-1.2392756938934326,
-0.9896195530891418,
-0.6342225074768066,
-0.9353980422019958,
-0.4937695264816284,
-0.343997061252594,
-0.5867534875869751,
-1.0271391868591309,
-0.5118447542190552,
-0.13835079967975616,
-0.20890739560127258,
-0.30152246356010437,
0.3556896448135376,
0.914784848690033,
0.9739790558815002,
0.9001023769378662,
-0.0559791661798954,
-0.6365620493888855,
-0.8146123886108398,
1.364690899848938,
-0.14610424637794495,
-0.07170797884464264,
-0.825549840927124,
-0.7753223776817322,
0.35577693581581116,
-0.1034231185913086,
-0.03589867055416107,
-1.133544921875,
-0.8397983908653259,
0.3348199725151062,
-0.7145067453384399,
-0.13348358869552612,
-0.41936400532722473,
-0.855025053024292,
1.3367815017700195,
0.628289520740509,
0.7177367210388184,
0.9017387628555298,
-0.2747702896595001,
-0.3661532998085022,
-0.3406483232975006,
-0.2950763404369354,
1.2785636186599731,
0.9885830879211426,
-0.19698259234428406,
-0.4475131928920746,
-1.041780948638916,
-0.8931893706321716,
-0.6741726398468018,
-0.44113314151763916,
0.5642869472503662,
0.8366304636001587,
0.23979169130325317,
0.4244847297668457,
1.3385051488876343,
0.652646005153656,
1.4847601652145386,
-0.07319941371679306,
1.4331687688827515,
0.0964164286851883,
-0.6037079095840454,
-0.7222059369087219,
-0.09311182796955109,
-0.4921453297138214,
0.38969579339027405,
-0.2733016312122345,
-1.1837118864059448,
-0.7355354428291321,
-0.6976963877677917,
0.3363126516342163,
0.3522143065929413,
0.6409688591957092,
0.9947689771652222,
0.4036443829536438,
0.9874423146247864,
0.198884978890419,
-0.001883574528619647,
-0.22303268313407898,
0.6505131125450134,
0.1942366659641266,
0.4588533341884613,
-1.110110878944397,
0.05537233129143715,
-0.9550606608390808,
-0.23459433019161224,
-0.5846961140632629,
0.11648814380168915,
-0.6348179578781128,
-0.10552750527858734,
0.23414216935634613,
-0.5217240452766418,
0.8830324411392212,
0.6278516054153442,
0.8794963955879211,
1.154626488685608,
0.8811584115028381,
1.3742344379425049,
0.0013833669945597649,
1.183777093887329,
1.236268162727356,
0.6741870045661926,
-0.40988314151763916,
-0.07625970244407654,
-0.12833383679389954,
-0.1263313740491867,
-0.9113436341285706,
-0.5769266486167908,
-0.5020799040794373,
0.2872130572795868,
-0.1193302646279335,
0.051435861736536026,
0.5741074681282043,
0.9434036016464233,
1.4419653415679932,
1.4149854183197021,
1.372450351715088,
1.328041911125183,
-0.48470669984817505,
1.1245766878128052,
0.20072142779827118,
1.2556546926498413,
-0.023168662562966347,
-0.5728554129600525,
0.003037379588931799,
-0.23164530098438263,
-0.8865780830383301,
-0.0010710505302995443,
-0.12788845598697662,
0.1425265669822693,
0.6675330996513367,
0.5460042953491211,
0.901313304901123,
0.945213794708252,
0.669986367225647,
1.2043920755386353,
0.8367606997489929,
1.2889519929885864,
-0.5794687867164612,
0.723864734172821,
-0.19198296964168549,
1.341660499572754,
-0.41921091079711914,
0.07179870456457138,
0.27789628505706787,
0.003709197510033846,
0.18566231429576874,
-0.4079318642616272,
0.20877714455127716,
-0.3535130023956299,
0.3603680431842804,
0.6286526918411255,
1.4089367389678955,
0.9004070162773132,
0.934583842754364,
0.9494833946228027,
1.1896443367004395,
1.2298882007598877,
-0.0559992678463459,
-0.1267615109682083,
-0.8425958752632141,
1.1961780786514282,
-0.5240882039070129,
0.5713120102882385,
0.6301128268241882,
0.18786932528018951,
-0.20960821211338043,
0.3096940815448761,
-0.051459964364767075,
0.45696136355400085,
0.7782992124557495,
0.5152472257614136,
0.7114264369010925,
0.6297524571418762,
0.9769810438156128,
0.07466975599527359,
0.0703081339597702,
0.9650352001190186,
-0.1365041881799698,
-0.8465286493301392,
-0.8337959051132202,
-0.40586504340171814,
0.9974926710128784,
0.5073449015617371,
-0.8744789361953735,
0.34475791454315186,
-0.08599300682544708,
0.8374577760696411,
0.41114428639411926,
0.053679682314395905,
0.5979822278022766,
0.899660050868988,
-0.2898470461368561,
-0.27407732605934143,
-0.49144601821899414,
0.2123636156320572,
-0.4481363892555237,
-0.23102831840515137,
0.15820065140724182,
-1.1764214038848877,
-1.2612066268920898,
-0.3114435076713562,
0.8424190878868103,
0.3477627635002136,
0.9072251319885254,
0.751478374004364,
-0.26006367802619934,
0.08285154402256012,
-0.39572250843048096,
0.1355595886707306,
0.00891929678618908,
0.3502693772315979,
-0.09089840948581696,
-0.5964071750640869,
-0.42753294110298157,
-0.9235694408416748,
-0.3885207176208496,
-0.5986596941947937,
-0.768949568271637,
0.24717558920383453,
-0.7443510890007019,
-0.6882625222206116,
-0.2006918340921402,
0.8934618830680847,
-0.41864532232284546,
0.306402325630188,
0.7476745247840881,
0.09925480931997299,
0.19005776941776276,
-0.024856192991137505,
0.7979829907417297,
0.6875270009040833,
-0.3951003849506378,
0.6783849596977234,
0.18603816628456116,
-0.7842507362365723,
0.6742908358573914,
0.6499669551849365,
0.918073296546936,
-0.5002454519271851,
1.216107964515686,
0.8909105658531189,
0.6188066005706787,
0.840234100818634,
-0.7983343601226807,
-1.0663707256317139,
0.1158219575881958,
-0.041625600308179855,
-0.42818522453308105,
-0.6920322775840759,
-0.8171529173851013,
0.1128421425819397,
-1.0594289302825928,
-0.4151531159877777,
-0.48944297432899475,
-1.1687790155410767,
-1.1723977327346802,
-0.6194528937339783,
-0.8994165062904358,
0.09586307406425476,
0.11391778290271759,
-0.5125714540481567,
1.264366865158081,
-0.43941161036491394,
-0.09845715761184692,
0.8130775094032288,
0.4714009463787079,
0.05458637699484825,
-0.0011975576635450125,
-0.8053545951843262,
-0.6674675345420837,
-1.0291380882263184,
-0.36741331219673157,
-0.8814748525619507,
1.0536909103393555,
-1.354200839996338,
1.3393571376800537,
0.8831523060798645,
1.1960337162017822,
0.21907199919223785,
0.331794410943985,
1.1814628839492798,
-0.6034896373748779,
-1.0625580549240112,
-0.4655229151248932,
-0.09131385385990143,
0.12695543467998505,
-0.19730867445468903,
-0.6666584014892578,
-1.1749050617218018,
-0.7397794127464294,
-0.5596379637718201,
-1.1101834774017334,
0.033360231667757034,
0.43268194794654846,
-0.3544120192527771,
-1.3419189453125,
-0.31099599599838257,
0.4814259707927704,
1.0726569890975952,
1.2350269556045532,
1.069932460784912,
-0.13788539171218872,
0.8794074058532715,
0.1118943840265274,
0.578197717666626,
0.00862057600170374,
-0.7703072428703308,
-0.3936803638935089,
-0.34856998920440674,
-0.3897494077682495,
0.2303866744041443,
-1.0141925811767578,
-0.17117024958133698,
-1.2712700366973877,
-1.3510351181030273,
-0.025684736669063568,
-0.4274519085884094,
0.003636765293776989,
-0.8887197971343994,
1.0626710653305054,
0.8082476258277893,
0.8474656939506531,
-0.02681146003305912,
-0.0799470990896225
]
},
{
"hoverinfo": [
"x",
"text"
],
"marker": {
"color": [
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342
],
"colorscale": [
[
0,
"#e2d9e2"
],
[
0.1111111111111111,
"#9ebbc9"
],
[
0.2222222222222222,
"#6785be"
],
[
0.3333333333333333,
"#5e43a5"
],
[
0.4444444444444444,
"#421257"
],
[
0.5555555555555556,
"#471340"
],
[
0.6666666666666666,
"#8e2c50"
],
[
0.7777777777777778,
"#ba6657"
],
[
0.8888888888888888,
"#ceac94"
],
[
1,
"#e2d9e2"
]
],
"size": 5,
"sizemode": "diameter"
},
"mode": "markers",
"name": "phase",
"scene": "scene2",
"text": [
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342,
0,
18,
36,
54,
72,
90,
108,
126,
144,
162,
180,
198,
216,
234,
252,
270,
288,
306,
324,
342
],
"type": "scatter3d",
"x": [
-2.636749029159546,
-0.5232290029525757,
-2.12611985206604,
-1.527305245399475,
1.4569270610809326,
1.345768928527832,
1.7701541185379028,
3.0743472576141357,
1.8496540784835815,
2.0838444232940674,
0.8768432140350342,
1.8071777820587158,
0.15131445229053497,
-1.0906720161437988,
-2.275883197784424,
-2.5951380729675293,
-1.9628797769546509,
-2.656909227371216,
-2.18230938911438,
-2.475834608078003,
-2.189849376678467,
-2.4870805740356445,
1.9005972146987915,
1.4525853395462036,
1.643107295036316,
2.013201951980591,
1.587700605392456,
3.01481294631958,
2.2142410278320312,
1.8162919282913208,
2.277534008026123,
1.3643985986709595,
-0.5854825377464294,
-0.854220986366272,
-1.816042184829712,
-1.8970468044281006,
-2.78483510017395,
-2.6056785583496094,
-1.4273104667663574,
-2.3762331008911133,
-2.2689738273620605,
-1.7684072256088257,
-2.292423725128174,
2.3182098865509033,
1.552763819694519,
1.5313694477081299,
2.7651844024658203,
1.4876394271850586,
2.6307759284973145,
2.6701016426086426,
1.5714685916900635,
-1.0012905597686768,
-1.1992813348770142,
0.19620496034622192,
-2.33363938331604,
-2.502152919769287,
-2.4091274738311768,
-1.663210153579712,
-1.9905799627304077,
-1.5104776620864868,
-2.309781551361084,
-0.6541293263435364,
-2.1944990158081055,
0.5775707960128784,
1.549149513244629,
-0.21101832389831543,
2.2964460849761963,
2.3633649349212646,
2.2819042205810547,
0.5238966941833496,
-0.3111248016357422,
-1.1424263715744019,
-1.1895091533660889,
-1.487895131111145,
-2.6841604709625244,
-1.8036202192306519,
-2.1683895587921143,
-2.757735252380371,
-2.183826446533203,
-2.783350944519043,
-2.454280138015747,
-1.766473650932312,
-0.2965039610862732,
1.7607393264770508,
2.805992364883423,
1.9331578016281128,
1.8615463972091675,
3.0641026496887207,
2.9604053497314453,
0.876614511013031,
2.064030885696411,
0.6317029595375061,
2.5760114192962646,
-2.1109163761138916,
-2.2257227897644043,
-1.653878092765808,
-2.4250428676605225,
-2.4616878032684326,
-2.8108439445495605,
-2.666435480117798,
-1.5650197267532349,
-0.3328011631965637,
1.5612006187438965,
2.5954842567443848,
3.02268648147583,
2.890842914581299,
3.1330513954162598,
3.1326441764831543,
3.2236509323120117,
2.8523616790771484,
-0.16439418494701385,
0.10609368234872818,
1.8729991912841797,
0.4241522252559662,
-2.2547597885131836,
-1.3061115741729736,
-2.600668430328369,
-2.445377826690674,
-1.9946590662002563,
-1.2770472764968872,
-1.328853726387024,
-0.23924320936203003,
1.9268301725387573,
2.666281223297119,
3.1955409049987793,
3.2047297954559326,
2.8159854412078857,
1.9713780879974365,
2.4676706790924072,
2.268953800201416,
-0.7109352946281433,
0.06688077002763748,
-0.14551231265068054,
-1.2189176082611084,
-0.3686046302318573,
-2.085026264190674,
-2.372225522994995,
-2.665112257003784,
-2.549307346343994,
-2.495276927947998,
-0.884303867816925,
0.2018129527568817,
2.4002935886383057,
2.090407609939575,
3.082230567932129,
2.780928373336792,
2.922239303588867,
2.7081258296966553,
2.0047130584716797,
-0.27897921204566956,
0.5033806562423706,
-0.866249680519104,
-1.055198311805725,
-1.9911868572235107,
-1.9282835721969604,
-2.3161332607269287,
-2.5586628913879395,
-2.820148229598999,
-1.2765735387802124,
1.4933128356933594,
-0.20843343436717987,
1.6894797086715698,
1.9140114784240723,
1.9602328538894653,
3.0939362049102783,
2.978870153427124,
3.0775411128997803,
2.3704898357391357,
2.316087484359741,
0.6358213424682617,
0.3318796455860138,
0.5168808102607727,
-0.46616330742836,
-1.062654733657837,
-1.3454877138137817,
-1.57883882522583,
-1.8256975412368774,
-2.5222644805908203,
-1.7336790561676025,
-0.33455175161361694,
-0.2581677734851837,
1.4023677110671997,
1.7895984649658203,
2.1219887733459473,
2.967463731765747,
3.0083870887756348,
2.6559736728668213,
1.9694633483886719,
2.351221799850464,
-0.08939039707183838,
-0.3357005715370178,
-0.39171260595321655,
-0.5122706294059753,
-2.1279990673065186,
-1.3979371786117554,
-1.2050074338912964,
-2.1696107387542725,
-2.569901704788208,
-2.320657253265381,
-0.4031272530555725,
-0.009206417948007584,
1.8169519901275635,
1.7767773866653442,
2.2835114002227783,
2.2570948600769043,
2.7004971504211426,
2.391049385070801,
2.4999215602874756,
0.8948326110839844,
0.47712597250938416,
-0.4832494258880615,
-1.5466992855072021,
-0.5620824694633484,
-1.3364862203598022,
-2.3651628494262695,
-2.2087817192077637,
-1.7438212633132935,
-0.07085371017456055,
-0.7388221025466919,
-0.5298848748207092,
-0.3381362557411194,
1.5063271522521973,
1.8838891983032227,
2.9630093574523926,
3.2252156734466553,
2.635326623916626,
2.15458083152771,
-0.031721197068691254,
0.6513852477073669,
0.6707361936569214,
0.6062929034233093,
-1.202601671218872,
-1.877831220626831,
-2.2017133235931396,
-1.6520916223526,
-2.8384134769439697,
-2.120011329650879,
-2.1783783435821533,
-1.452439546585083,
-1.2341161966323853,
1.605832815170288,
1.6371420621871948,
2.0362424850463867,
2.531794309616089,
2.940856456756592,
2.5741639137268066,
1.7416201829910278,
1.5101065635681152,
1.8209607601165771,
0.7662189602851868,
-0.8282843232154846,
-2.3237295150756836,
-1.5714404582977295,
-2.411151170730591,
-2.5890705585479736,
-2.8010451793670654,
-0.012580987997353077,
-1.2551218271255493,
-0.7759292125701904,
1.254787802696228,
1.3671361207962036,
2.0056381225585938,
2.4979350566864014,
2.92318058013916,
3.0899829864501953,
2.2052528858184814,
1.9483743906021118,
2.034580707550049,
1.7920607328414917,
-2.0073401927948,
-0.5849555134773254,
-1.62759268283844,
-2.31774640083313,
-2.539726972579956,
-2.1547820568084717,
-2.136880397796631,
-2.333404541015625,
-1.456567645072937,
-0.6688680052757263,
-0.9888973832130432,
-1.1897625923156738,
1.4709984064102173,
2.401407241821289,
3.2323243618011475,
2.608628749847412,
2.704803943634033,
2.4618093967437744,
3.1517574787139893,
-0.841175377368927,
1.7388787269592285,
-1.8080576658248901,
-2.341444253921509,
-2.659764289855957,
-1.333786964416504,
-2.5701818466186523,
-2.8970787525177,
-2.4450204372406006,
-1.6987088918685913,
-1.3139636516571045,
1.6273058652877808,
1.5312578678131104,
2.156438112258911,
2.0231175422668457,
3.0327723026275635,
2.8761532306671143,
2.3773558139801025,
1.6250115633010864,
-1.2280019521713257,
-0.4596274495124817,
-2.451291561126709,
-2.5699734687805176,
-1.8156791925430298,
-2.422438859939575,
-1.5591089725494385,
-1.1534817218780518,
-2.124786853790283,
-2.3588247299194336,
-2.4486005306243896,
-1.4898719787597656,
1.1692171096801758,
2.4371566772460938,
2.675421714782715,
3.028947353363037,
3.2762906551361084,
3.210784673690796,
2.798219680786133,
0.0778750628232956,
-1.3871999979019165,
-0.42429912090301514,
-0.29750674962997437,
-1.7927029132843018,
-1.8415130376815796,
-2.716629981994629,
-2.6533467769622803,
-2.2065868377685547,
-2.449666976928711,
-2.4294679164886475,
-2.0667805671691895,
-1.7843027114868164,
0.15915553271770477,
1.5144495964050293,
1.846925139427185,
2.023528575897217,
3.118455171585083,
2.877985715866089,
2.1591796875,
2.6429860591888428,
0.6254458427429199,
-0.9037439823150635,
-1.6764146089553833,
-2.3950929641723633,
-1.7713427543640137,
-1.7855433225631714,
-1.9513452053070068,
-2.4264798164367676,
-2.507366895675659,
-2.125393867492676,
-1.2815886735916138,
1.0583539009094238,
0.12755917012691498,
1.1940327882766724,
2.0802133083343506,
1.6228529214859009,
2.4104721546173096,
2.2607128620147705,
-0.3727504014968872,
3.060093402862549,
1.9437981843948364,
0.27943891286849976,
-2.341064214706421,
-2.351708173751831,
-2.4084227085113525,
-2.444552421569824,
-2.3870577812194824,
-1.5597811937332153,
-2.083660364151001,
-1.435258150100708,
-1.3379019498825073,
-0.7522804141044617,
0.023404274135828018,
0.8143199682235718,
1.4998400211334229,
2.33652400970459,
2.126136302947998,
1.7701870203018188,
0.46673038601875305,
2.1971495151519775,
2.6723897457122803,
-0.20574593544006348,
-1.903565764427185,
-2.3365414142608643,
-2.353273391723633,
-2.471548318862915,
-2.635589122772217,
-2.775251865386963,
-1.4211307764053345,
-1.5380645990371704,
-1.002173900604248,
0.16280396282672882,
0.26799845695495605
],
"y": [
0.3073514699935913,
-1.2182079553604126,
-0.5640690922737122,
-1.1190026998519897,
-0.6362850666046143,
1.5776411294937134,
1.3202075958251953,
0.2799534499645233,
-0.8010665774345398,
-0.8130486011505127,
-0.727885901927948,
-0.8682217001914978,
0.838338315486908,
-1.2753883600234985,
-0.11090821772813797,
-0.5063751935958862,
0.9768651723861694,
-0.6977108120918274,
-0.28420016169548035,
0.5518101453781128,
-0.4540514647960663,
-0.16861146688461304,
1.5795468091964722,
1.7228995561599731,
1.6310762166976929,
0.8831251859664917,
0.4867601990699768,
-0.2729418873786926,
-0.16644050180912018,
-0.7189112901687622,
-0.7125007510185242,
-1.5052460432052612,
-1.1249767541885376,
-0.7815974950790405,
-0.09239272773265839,
-1.3314956426620483,
0.06283213198184967,
0.21165552735328674,
-1.530548334121704,
0.008618169464170933,
0.9531002640724182,
1.4196105003356934,
0.9770189523696899,
0.2491334229707718,
0.58216792345047,
1.590476155281067,
0.06688202917575836,
0.5912284851074219,
-0.5568219423294067,
-0.6190695762634277,
-1.3248250484466553,
-1.1945958137512207,
-1.310115098953247,
-0.7142967581748962,
0.9624256491661072,
0.030214929953217506,
-0.7071700692176819,
-1.329491376876831,
-1.2089256048202515,
0.2627672255039215,
0.7363324761390686,
0.7688787579536438,
-0.49741777777671814,
1.268431544303894,
0.9928838014602661,
1.1063992977142334,
0.165899395942688,
0.10362887382507324,
-0.8707314729690552,
-0.6509326696395874,
-1.755077838897705,
-1.3063374757766724,
-1.6163513660430908,
-0.6578387022018433,
-0.680621325969696,
-0.22083736956119537,
-0.8573488593101501,
-0.35041534900665283,
-1.0925333499908447,
-0.3843792676925659,
0.7898856997489929,
1.3367650508880615,
0.9189524054527283,
1.3290361166000366,
0.10131890326738358,
1.3698934316635132,
0.1286434382200241,
-0.7253291010856628,
-0.1618862748146057,
-1.455517053604126,
0.03764783591032028,
-1.3536484241485596,
-1.0519436597824097,
-1.102368712425232,
-1.07437002658844,
0.8636431694030762,
0.7749217748641968,
0.8868018984794617,
0.059267204254865646,
0.20887108147144318,
1.554880976676941,
1.7328338623046875,
1.6574392318725586,
0.09423288702964783,
-0.23941655457019806,
0.6016597747802734,
-0.5159286260604858,
-0.45896902680397034,
-0.5988583564758301,
-0.6909195184707642,
-1.271100401878357,
-1.7230411767959595,
-1.2443057298660278,
-1.599233865737915,
-0.5496954321861267,
-1.645702600479126,
-0.601917028427124,
-0.2875460684299469,
1.0931456089019775,
0.5997875332832336,
1.566237211227417,
1.22966730594635,
1.2093254327774048,
-0.35968607664108276,
-0.43390196561813354,
-0.6137526631355286,
0.2991188168525696,
0.2652530372142792,
-0.843012273311615,
-1.1960004568099976,
-0.9314181804656982,
-1.6544055938720703,
-1.1788768768310547,
-1.625083088874817,
-1.1066349744796753,
-0.8767375349998474,
-0.8955783843994141,
-0.47516292333602905,
0.23044440150260925,
0.4380115568637848,
1.7157890796661377,
1.6329143047332764,
0.25993165373802185,
1.3270355463027954,
-0.13288581371307373,
0.5336033701896667,
0.28808435797691345,
-0.3909056782722473,
-0.07458841800689697,
-1.7592657804489136,
-1.5602681636810303,
-1.675264596939087,
-1.6740005016326904,
-1.0372251272201538,
1.2635679244995117,
0.9389786720275879,
0.2734259068965912,
-0.23117855191230774,
1.6118382215499878,
1.5225201845169067,
1.6244443655014038,
1.5461360216140747,
1.3863155841827393,
1.5131620168685913,
-0.0928322970867157,
0.4989480972290039,
0.15169233083724976,
-0.5453267693519592,
-0.6588094830513,
-1.554460883140564,
-1.43989896774292,
-1.7288960218429565,
-1.1654797792434692,
-1.6671503782272339,
-0.35512804985046387,
1.1739448308944702,
0.06626895070075989,
0.7338117361068726,
1.3960143327713013,
1.5265229940414429,
1.664265751838684,
1.563443660736084,
1.4814398288726807,
1.424068570137024,
0.5690942406654358,
0.39433398842811584,
-0.9907390475273132,
-1.3041479587554932,
-0.4315612018108368,
-1.192265510559082,
-1.2926007509231567,
-1.2096853256225586,
-1.1455514430999756,
-1.0530451536178589,
-0.360250860452652,
-1.4914488792419434,
0.9946401119232178,
0.20970182120800018,
0.5077683329582214,
1.775773048400879,
1.6065752506256104,
1.460782766342163,
1.6805490255355835,
1.3331204652786255,
1.337679386138916,
0.24166934192180634,
-0.7490553259849548,
-0.2811664044857025,
-1.35236394405365,
-1.7132093906402588,
-1.2351900339126587,
1.3448354005813599,
-1.1301639080047607,
-1.459120750427246,
0.9142097234725952,
0.9922917485237122,
0.8919673562049866,
1.537003517150879,
1.755489468574524,
1.7933921813964844,
1.7519162893295288,
1.658876895904541,
1.5975285768508911,
0.45615020394325256,
-0.22323977947235107,
-0.6451533436775208,
-1.1315258741378784,
-1.2966467142105103,
-1.5909005403518677,
-1.5968538522720337,
-1.433286428451538,
-0.5971233248710632,
0.4708939492702484,
-0.9110822677612305,
1.4557346105575562,
-0.23283353447914124,
1.0522940158843994,
0.9501413106918335,
1.5699745416641235,
1.5931545495986938,
1.61350417137146,
1.5116722583770752,
1.2873518466949463,
1.1114286184310913,
0.258755624294281,
-0.2929762005805969,
-1.3466180562973022,
-1.4063233137130737,
-1.3217921257019043,
-1.4213918447494507,
-1.719537377357483,
-0.5935867428779602,
0.16192938387393951,
0.15584248304367065,
-0.30184030532836914,
0.0774451270699501,
1.5688303709030151,
0.5953820943832397,
1.7357265949249268,
1.6369752883911133,
1.5440952777862549,
1.5301169157028198,
0.026112958788871765,
0.6425432562828064,
-0.05458596348762512,
-1.1241093873977661,
-0.9194499850273132,
-1.255521297454834,
-1.309670329093933,
-1.1626633405685425,
-1.7420589923858643,
-1.4812431335449219,
-0.8494639992713928,
-0.25220823287963867,
-0.9375631213188171,
-0.8490588068962097,
0.470380038022995,
1.5222915410995483,
1.7011451721191406,
0.8031243681907654,
1.5918086767196655,
0.6896489262580872,
1.1773968935012817,
-0.3683306872844696,
-0.7142453789710999,
-0.9713537096977234,
-1.068410873413086,
-0.34815770387649536,
-0.9297611117362976,
-1.282157063484192,
-1.2368146181106567,
-0.27540120482444763,
-0.5067703127861023,
-1.4319669008255005,
0.19279606640338898,
-0.07041898369789124,
0.6292337775230408,
1.3997176885604858,
1.4670617580413818,
1.606366515159607,
0.9453895688056946,
0.490310937166214,
0.9830073118209839,
0.5542521476745605,
-0.6237378120422363,
-0.1365845501422882,
-1.4014512300491333,
-1.628750205039978,
-1.486925482749939,
-0.4462045431137085,
-0.8278690576553345,
-0.20497338473796844,
0.6053311228752136,
0.269463449716568,
-0.8390313982963562,
1.075843095779419,
0.7595785856246948,
0.7820119857788086,
1.5078366994857788,
1.6349693536758423,
0.1314404010772705,
0.7659013271331787,
-0.131573885679245,
-0.41338950395584106,
-0.3324352204799652,
-0.7138409614562988,
-0.5372509360313416,
-1.0307930707931519,
-0.9556679725646973,
-0.9986785650253296,
-1.0642783641815186,
-0.7952610850334167,
-0.5750700235366821,
-0.6735365986824036,
1.1381114721298218,
0.7539517879486084,
0.03860218822956085,
1.072481393814087,
1.114106297492981,
-0.934726357460022,
0.44154876470565796,
0.8167842030525208,
-0.6006396412849426,
-0.2947448790073395,
-0.6611872315406799,
0.3000542223453522,
-0.5400033593177795,
1.3366469144821167,
-1.0443168878555298,
1.308602213859558,
-0.31186729669570923,
1.1076242923736572,
-0.09007124602794647,
1.160498023033142,
0.8338593244552612,
-0.04935260862112045,
1.052345633506775,
-1.4882506132125854,
1.37422513961792,
1.3518725633621216,
0.030148740857839584,
-0.7327764630317688,
0.3653237223625183,
-0.7184453010559082,
0.582207441329956,
-1.045889973640442,
-0.625887393951416,
1.0746549367904663,
-0.5671799182891846,
0.25540608167648315,
-0.07326500862836838,
-0.48792997002601624,
-0.2127901166677475,
0.5802617073059082,
1.3357157707214355,
0.720526397228241,
-0.3667120635509491,
-0.7462166547775269,
0.9822026491165161,
-0.5295237898826599,
-1.1522475481033325,
-0.7522217631340027,
0.14334896206855774,
1.4512876272201538,
0.4850279986858368,
1.32559335231781,
-0.7918603420257568,
-0.31038686633110046,
1.708249568939209,
-1.0045711994171143,
-0.24398022890090942,
0.9027085900306702,
0.2922363877296448,
0.49757254123687744,
-0.21258603036403656,
0.23005519807338715,
0.2992172837257385,
0.8289351463317871,
-0.6940577030181885,
-0.795835018157959
],
"z": [
0.25247862935066223,
-0.5201209187507629,
-1.422930121421814,
-1.0521326065063477,
-0.05257199704647064,
-0.919045627117157,
-0.08603250980377197,
-0.3665373623371124,
0.28854358196258545,
0.41170501708984375,
-0.1361107975244522,
0.3039822578430176,
-0.6103042364120483,
-0.4989929795265198,
-0.6008402705192566,
-0.19286422431468964,
1.4104101657867432,
-0.8646129965782166,
0.4267890453338623,
0.5403592586517334,
-1.338730812072754,
-1.2566184997558594,
-0.6142240166664124,
-0.315213680267334,
0.19291117787361145,
-0.18949659168720245,
-0.24856673181056976,
-0.8636323809623718,
0.9624485969543457,
0.0007997429347597063,
-0.9066151976585388,
0.6343755722045898,
-0.5961406826972961,
-0.5652732849121094,
0.639112651348114,
-0.616364598274231,
-0.8310528993606567,
-0.4474818706512451,
-0.5239307284355164,
-0.3982047140598297,
-0.5110301375389099,
0.20601511001586914,
0.7897728085517883,
-1.2576290369033813,
-0.24336668848991394,
-0.22922076284885406,
-0.27425673604011536,
-0.21491196751594543,
0.5272048711776733,
-0.9698009490966797,
-0.34443172812461853,
-0.8786249756813049,
-0.9548211693763733,
0.030404360964894295,
0.6473854780197144,
-0.5080245733261108,
-0.00010515388567000628,
-0.76103675365448,
-0.9072094559669495,
0.9388377070426941,
-0.4464224874973297,
0.7568147778511047,
-1.4058395624160767,
-0.4622499942779541,
-0.008377118036150932,
-0.5297369360923767,
-1.1347864866256714,
-1.124145269393921,
0.3065145015716553,
-0.10182292014360428,
0.36198508739471436,
-0.8321139812469482,
-0.4040463864803314,
0.21685072779655457,
-0.5292386412620544,
0.9856938123703003,
-1.2392756938934326,
-0.9896195530891418,
-0.6342225074768066,
-0.9353980422019958,
-0.4937695264816284,
-0.343997061252594,
-0.5867534875869751,
-1.0271391868591309,
-0.5118447542190552,
-0.13835079967975616,
-0.20890739560127258,
-0.30152246356010437,
0.3556896448135376,
0.914784848690033,
0.9739790558815002,
0.9001023769378662,
-0.0559791661798954,
-0.6365620493888855,
-0.8146123886108398,
1.364690899848938,
-0.14610424637794495,
-0.07170797884464264,
-0.825549840927124,
-0.7753223776817322,
0.35577693581581116,
-0.1034231185913086,
-0.03589867055416107,
-1.133544921875,
-0.8397983908653259,
0.3348199725151062,
-0.7145067453384399,
-0.13348358869552612,
-0.41936400532722473,
-0.855025053024292,
1.3367815017700195,
0.628289520740509,
0.7177367210388184,
0.9017387628555298,
-0.2747702896595001,
-0.3661532998085022,
-0.3406483232975006,
-0.2950763404369354,
1.2785636186599731,
0.9885830879211426,
-0.19698259234428406,
-0.4475131928920746,
-1.041780948638916,
-0.8931893706321716,
-0.6741726398468018,
-0.44113314151763916,
0.5642869472503662,
0.8366304636001587,
0.23979169130325317,
0.4244847297668457,
1.3385051488876343,
0.652646005153656,
1.4847601652145386,
-0.07319941371679306,
1.4331687688827515,
0.0964164286851883,
-0.6037079095840454,
-0.7222059369087219,
-0.09311182796955109,
-0.4921453297138214,
0.38969579339027405,
-0.2733016312122345,
-1.1837118864059448,
-0.7355354428291321,
-0.6976963877677917,
0.3363126516342163,
0.3522143065929413,
0.6409688591957092,
0.9947689771652222,
0.4036443829536438,
0.9874423146247864,
0.198884978890419,
-0.001883574528619647,
-0.22303268313407898,
0.6505131125450134,
0.1942366659641266,
0.4588533341884613,
-1.110110878944397,
0.05537233129143715,
-0.9550606608390808,
-0.23459433019161224,
-0.5846961140632629,
0.11648814380168915,
-0.6348179578781128,
-0.10552750527858734,
0.23414216935634613,
-0.5217240452766418,
0.8830324411392212,
0.6278516054153442,
0.8794963955879211,
1.154626488685608,
0.8811584115028381,
1.3742344379425049,
0.0013833669945597649,
1.183777093887329,
1.236268162727356,
0.6741870045661926,
-0.40988314151763916,
-0.07625970244407654,
-0.12833383679389954,
-0.1263313740491867,
-0.9113436341285706,
-0.5769266486167908,
-0.5020799040794373,
0.2872130572795868,
-0.1193302646279335,
0.051435861736536026,
0.5741074681282043,
0.9434036016464233,
1.4419653415679932,
1.4149854183197021,
1.372450351715088,
1.328041911125183,
-0.48470669984817505,
1.1245766878128052,
0.20072142779827118,
1.2556546926498413,
-0.023168662562966347,
-0.5728554129600525,
0.003037379588931799,
-0.23164530098438263,
-0.8865780830383301,
-0.0010710505302995443,
-0.12788845598697662,
0.1425265669822693,
0.6675330996513367,
0.5460042953491211,
0.901313304901123,
0.945213794708252,
0.669986367225647,
1.2043920755386353,
0.8367606997489929,
1.2889519929885864,
-0.5794687867164612,
0.723864734172821,
-0.19198296964168549,
1.341660499572754,
-0.41921091079711914,
0.07179870456457138,
0.27789628505706787,
0.003709197510033846,
0.18566231429576874,
-0.4079318642616272,
0.20877714455127716,
-0.3535130023956299,
0.3603680431842804,
0.6286526918411255,
1.4089367389678955,
0.9004070162773132,
0.934583842754364,
0.9494833946228027,
1.1896443367004395,
1.2298882007598877,
-0.0559992678463459,
-0.1267615109682083,
-0.8425958752632141,
1.1961780786514282,
-0.5240882039070129,
0.5713120102882385,
0.6301128268241882,
0.18786932528018951,
-0.20960821211338043,
0.3096940815448761,
-0.051459964364767075,
0.45696136355400085,
0.7782992124557495,
0.5152472257614136,
0.7114264369010925,
0.6297524571418762,
0.9769810438156128,
0.07466975599527359,
0.0703081339597702,
0.9650352001190186,
-0.1365041881799698,
-0.8465286493301392,
-0.8337959051132202,
-0.40586504340171814,
0.9974926710128784,
0.5073449015617371,
-0.8744789361953735,
0.34475791454315186,
-0.08599300682544708,
0.8374577760696411,
0.41114428639411926,
0.053679682314395905,
0.5979822278022766,
0.899660050868988,
-0.2898470461368561,
-0.27407732605934143,
-0.49144601821899414,
0.2123636156320572,
-0.4481363892555237,
-0.23102831840515137,
0.15820065140724182,
-1.1764214038848877,
-1.2612066268920898,
-0.3114435076713562,
0.8424190878868103,
0.3477627635002136,
0.9072251319885254,
0.751478374004364,
-0.26006367802619934,
0.08285154402256012,
-0.39572250843048096,
0.1355595886707306,
0.00891929678618908,
0.3502693772315979,
-0.09089840948581696,
-0.5964071750640869,
-0.42753294110298157,
-0.9235694408416748,
-0.3885207176208496,
-0.5986596941947937,
-0.768949568271637,
0.24717558920383453,
-0.7443510890007019,
-0.6882625222206116,
-0.2006918340921402,
0.8934618830680847,
-0.41864532232284546,
0.306402325630188,
0.7476745247840881,
0.09925480931997299,
0.19005776941776276,
-0.024856192991137505,
0.7979829907417297,
0.6875270009040833,
-0.3951003849506378,
0.6783849596977234,
0.18603816628456116,
-0.7842507362365723,
0.6742908358573914,
0.6499669551849365,
0.918073296546936,
-0.5002454519271851,
1.216107964515686,
0.8909105658531189,
0.6188066005706787,
0.840234100818634,
-0.7983343601226807,
-1.0663707256317139,
0.1158219575881958,
-0.041625600308179855,
-0.42818522453308105,
-0.6920322775840759,
-0.8171529173851013,
0.1128421425819397,
-1.0594289302825928,
-0.4151531159877777,
-0.48944297432899475,
-1.1687790155410767,
-1.1723977327346802,
-0.6194528937339783,
-0.8994165062904358,
0.09586307406425476,
0.11391778290271759,
-0.5125714540481567,
1.264366865158081,
-0.43941161036491394,
-0.09845715761184692,
0.8130775094032288,
0.4714009463787079,
0.05458637699484825,
-0.0011975576635450125,
-0.8053545951843262,
-0.6674675345420837,
-1.0291380882263184,
-0.36741331219673157,
-0.8814748525619507,
1.0536909103393555,
-1.354200839996338,
1.3393571376800537,
0.8831523060798645,
1.1960337162017822,
0.21907199919223785,
0.331794410943985,
1.1814628839492798,
-0.6034896373748779,
-1.0625580549240112,
-0.4655229151248932,
-0.09131385385990143,
0.12695543467998505,
-0.19730867445468903,
-0.6666584014892578,
-1.1749050617218018,
-0.7397794127464294,
-0.5596379637718201,
-1.1101834774017334,
0.033360231667757034,
0.43268194794654846,
-0.3544120192527771,
-1.3419189453125,
-0.31099599599838257,
0.4814259707927704,
1.0726569890975952,
1.2350269556045532,
1.069932460784912,
-0.13788539171218872,
0.8794074058532715,
0.1118943840265274,
0.578197717666626,
0.00862057600170374,
-0.7703072428703308,
-0.3936803638935089,
-0.34856998920440674,
-0.3897494077682495,
0.2303866744041443,
-1.0141925811767578,
-0.17117024958133698,
-1.2712700366973877,
-1.3510351181030273,
-0.025684736669063568,
-0.4274519085884094,
0.003636765293776989,
-0.8887197971343994,
1.0626710653305054,
0.8082476258277893,
0.8474656939506531,
-0.02681146003305912,
-0.0799470990896225
]
},
{
"hoverinfo": [
"x",
"text"
],
"marker": {
"color": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171
],
"colorscale": [
[
0,
"#440154"
],
[
0.1111111111111111,
"#482878"
],
[
0.2222222222222222,
"#3e4989"
],
[
0.3333333333333333,
"#31688e"
],
[
0.4444444444444444,
"#26828e"
],
[
0.5555555555555556,
"#1f9e89"
],
[
0.6666666666666666,
"#35b779"
],
[
0.7777777777777778,
"#6ece58"
],
[
0.8888888888888888,
"#b5de2b"
],
[
1,
"#fde725"
]
],
"size": 5,
"sizemode": "diameter"
},
"mode": "markers",
"name": "orientation",
"scene": "scene4",
"text": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
9,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
18,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
45,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
108,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
126,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
135,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
144,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
153,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
162,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171,
171
],
"type": "scatter3d",
"x": [
-2.636749029159546,
-0.5232290029525757,
-2.12611985206604,
-1.527305245399475,
1.4569270610809326,
1.345768928527832,
1.7701541185379028,
3.0743472576141357,
1.8496540784835815,
2.0838444232940674,
0.8768432140350342,
1.8071777820587158,
0.15131445229053497,
-1.0906720161437988,
-2.275883197784424,
-2.5951380729675293,
-1.9628797769546509,
-2.656909227371216,
-2.18230938911438,
-2.475834608078003,
-2.189849376678467,
-2.4870805740356445,
1.9005972146987915,
1.4525853395462036,
1.643107295036316,
2.013201951980591,
1.587700605392456,
3.01481294631958,
2.2142410278320312,
1.8162919282913208,
2.277534008026123,
1.3643985986709595,
-0.5854825377464294,
-0.854220986366272,
-1.816042184829712,
-1.8970468044281006,
-2.78483510017395,
-2.6056785583496094,
-1.4273104667663574,
-2.3762331008911133,
-2.2689738273620605,
-1.7684072256088257,
-2.292423725128174,
2.3182098865509033,
1.552763819694519,
1.5313694477081299,
2.7651844024658203,
1.4876394271850586,
2.6307759284973145,
2.6701016426086426,
1.5714685916900635,
-1.0012905597686768,
-1.1992813348770142,
0.19620496034622192,
-2.33363938331604,
-2.502152919769287,
-2.4091274738311768,
-1.663210153579712,
-1.9905799627304077,
-1.5104776620864868,
-2.309781551361084,
-0.6541293263435364,
-2.1944990158081055,
0.5775707960128784,
1.549149513244629,
-0.21101832389831543,
2.2964460849761963,
2.3633649349212646,
2.2819042205810547,
0.5238966941833496,
-0.3111248016357422,
-1.1424263715744019,
-1.1895091533660889,
-1.487895131111145,
-2.6841604709625244,
-1.8036202192306519,
-2.1683895587921143,
-2.757735252380371,
-2.183826446533203,
-2.783350944519043,
-2.454280138015747,
-1.766473650932312,
-0.2965039610862732,
1.7607393264770508,
2.805992364883423,
1.9331578016281128,
1.8615463972091675,
3.0641026496887207,
2.9604053497314453,
0.876614511013031,
2.064030885696411,
0.6317029595375061,
2.5760114192962646,
-2.1109163761138916,
-2.2257227897644043,
-1.653878092765808,
-2.4250428676605225,
-2.4616878032684326,
-2.8108439445495605,
-2.666435480117798,
-1.5650197267532349,
-0.3328011631965637,
1.5612006187438965,
2.5954842567443848,
3.02268648147583,
2.890842914581299,
3.1330513954162598,
3.1326441764831543,
3.2236509323120117,
2.8523616790771484,
-0.16439418494701385,
0.10609368234872818,
1.8729991912841797,
0.4241522252559662,
-2.2547597885131836,
-1.3061115741729736,
-2.600668430328369,
-2.445377826690674,
-1.9946590662002563,
-1.2770472764968872,
-1.328853726387024,
-0.23924320936203003,
1.9268301725387573,
2.666281223297119,
3.1955409049987793,
3.2047297954559326,
2.8159854412078857,
1.9713780879974365,
2.4676706790924072,
2.268953800201416,
-0.7109352946281433,
0.06688077002763748,
-0.14551231265068054,
-1.2189176082611084,
-0.3686046302318573,
-2.085026264190674,
-2.372225522994995,
-2.665112257003784,
-2.549307346343994,
-2.495276927947998,
-0.884303867816925,
0.2018129527568817,
2.4002935886383057,
2.090407609939575,
3.082230567932129,
2.780928373336792,
2.922239303588867,
2.7081258296966553,
2.0047130584716797,
-0.27897921204566956,
0.5033806562423706,
-0.866249680519104,
-1.055198311805725,
-1.9911868572235107,
-1.9282835721969604,
-2.3161332607269287,
-2.5586628913879395,
-2.820148229598999,
-1.2765735387802124,
1.4933128356933594,
-0.20843343436717987,
1.6894797086715698,
1.9140114784240723,
1.9602328538894653,
3.0939362049102783,
2.978870153427124,
3.0775411128997803,
2.3704898357391357,
2.316087484359741,
0.6358213424682617,
0.3318796455860138,
0.5168808102607727,
-0.46616330742836,
-1.062654733657837,
-1.3454877138137817,
-1.57883882522583,
-1.8256975412368774,
-2.5222644805908203,
-1.7336790561676025,
-0.33455175161361694,
-0.2581677734851837,
1.4023677110671997,
1.7895984649658203,
2.1219887733459473,
2.967463731765747,
3.0083870887756348,
2.6559736728668213,
1.9694633483886719,
2.351221799850464,
-0.08939039707183838,
-0.3357005715370178,
-0.39171260595321655,
-0.5122706294059753,
-2.1279990673065186,
-1.3979371786117554,
-1.2050074338912964,
-2.1696107387542725,
-2.569901704788208,
-2.320657253265381,
-0.4031272530555725,
-0.009206417948007584,
1.8169519901275635,
1.7767773866653442,
2.2835114002227783,
2.2570948600769043,
2.7004971504211426,
2.391049385070801,
2.4999215602874756,
0.8948326110839844,
0.47712597250938416,
-0.4832494258880615,
-1.5466992855072021,
-0.5620824694633484,
-1.3364862203598022,
-2.3651628494262695,
-2.2087817192077637,
-1.7438212633132935,
-0.07085371017456055,
-0.7388221025466919,
-0.5298848748207092,
-0.3381362557411194,
1.5063271522521973,
1.8838891983032227,
2.9630093574523926,
3.2252156734466553,
2.635326623916626,
2.15458083152771,
-0.031721197068691254,
0.6513852477073669,
0.6707361936569214,
0.6062929034233093,
-1.202601671218872,
-1.877831220626831,
-2.2017133235931396,
-1.6520916223526,
-2.8384134769439697,
-2.120011329650879,
-2.1783783435821533,
-1.452439546585083,
-1.2341161966323853,
1.605832815170288,
1.6371420621871948,
2.0362424850463867,
2.531794309616089,
2.940856456756592,
2.5741639137268066,
1.7416201829910278,
1.5101065635681152,
1.8209607601165771,
0.7662189602851868,
-0.8282843232154846,
-2.3237295150756836,
-1.5714404582977295,
-2.411151170730591,
-2.5890705585479736,
-2.8010451793670654,
-0.012580987997353077,
-1.2551218271255493,
-0.7759292125701904,
1.254787802696228,
1.3671361207962036,
2.0056381225585938,
2.4979350566864014,
2.92318058013916,
3.0899829864501953,
2.2052528858184814,
1.9483743906021118,
2.034580707550049,
1.7920607328414917,
-2.0073401927948,
-0.5849555134773254,
-1.62759268283844,
-2.31774640083313,
-2.539726972579956,
-2.1547820568084717,
-2.136880397796631,
-2.333404541015625,
-1.456567645072937,
-0.6688680052757263,
-0.9888973832130432,
-1.1897625923156738,
1.4709984064102173,
2.401407241821289,
3.2323243618011475,
2.608628749847412,
2.704803943634033,
2.4618093967437744,
3.1517574787139893,
-0.841175377368927,
1.7388787269592285,
-1.8080576658248901,
-2.341444253921509,
-2.659764289855957,
-1.333786964416504,
-2.5701818466186523,
-2.8970787525177,
-2.4450204372406006,
-1.6987088918685913,
-1.3139636516571045,
1.6273058652877808,
1.5312578678131104,
2.156438112258911,
2.0231175422668457,
3.0327723026275635,
2.8761532306671143,
2.3773558139801025,
1.6250115633010864,
-1.2280019521713257,
-0.4596274495124817,
-2.451291561126709,
-2.5699734687805176,
-1.8156791925430298,
-2.422438859939575,
-1.5591089725494385,
-1.1534817218780518,
-2.124786853790283,
-2.3588247299194336,
-2.4486005306243896,
-1.4898719787597656,
1.1692171096801758,
2.4371566772460938,
2.675421714782715,
3.028947353363037,
3.2762906551361084,
3.210784673690796,
2.798219680786133,
0.0778750628232956,
-1.3871999979019165,
-0.42429912090301514,
-0.29750674962997437,
-1.7927029132843018,
-1.8415130376815796,
-2.716629981994629,
-2.6533467769622803,
-2.2065868377685547,
-2.449666976928711,
-2.4294679164886475,
-2.0667805671691895,
-1.7843027114868164,
0.15915553271770477,
1.5144495964050293,
1.846925139427185,
2.023528575897217,
3.118455171585083,
2.877985715866089,
2.1591796875,
2.6429860591888428,
0.6254458427429199,
-0.9037439823150635,
-1.6764146089553833,
-2.3950929641723633,
-1.7713427543640137,
-1.7855433225631714,
-1.9513452053070068,
-2.4264798164367676,
-2.507366895675659,
-2.125393867492676,
-1.2815886735916138,
1.0583539009094238,
0.12755917012691498,
1.1940327882766724,
2.0802133083343506,
1.6228529214859009,
2.4104721546173096,
2.2607128620147705,
-0.3727504014968872,
3.060093402862549,
1.9437981843948364,
0.27943891286849976,
-2.341064214706421,
-2.351708173751831,
-2.4084227085113525,
-2.444552421569824,
-2.3870577812194824,
-1.5597811937332153,
-2.083660364151001,
-1.435258150100708,
-1.3379019498825073,
-0.7522804141044617,
0.023404274135828018,
0.8143199682235718,
1.4998400211334229,
2.33652400970459,
2.126136302947998,
1.7701870203018188,
0.46673038601875305,
2.1971495151519775,
2.6723897457122803,
-0.20574593544006348,
-1.903565764427185,
-2.3365414142608643,
-2.353273391723633,
-2.471548318862915,
-2.635589122772217,
-2.775251865386963,
-1.4211307764053345,
-1.5380645990371704,
-1.002173900604248,
0.16280396282672882,
0.26799845695495605
],
"y": [
0.3073514699935913,
-1.2182079553604126,
-0.5640690922737122,
-1.1190026998519897,
-0.6362850666046143,
1.5776411294937134,
1.3202075958251953,
0.2799534499645233,
-0.8010665774345398,
-0.8130486011505127,
-0.727885901927948,
-0.8682217001914978,
0.838338315486908,
-1.2753883600234985,
-0.11090821772813797,
-0.5063751935958862,
0.9768651723861694,
-0.6977108120918274,
-0.28420016169548035,
0.5518101453781128,
-0.4540514647960663,
-0.16861146688461304,
1.5795468091964722,
1.7228995561599731,
1.6310762166976929,
0.8831251859664917,
0.4867601990699768,
-0.2729418873786926,
-0.16644050180912018,
-0.7189112901687622,
-0.7125007510185242,
-1.5052460432052612,
-1.1249767541885376,
-0.7815974950790405,
-0.09239272773265839,
-1.3314956426620483,
0.06283213198184967,
0.21165552735328674,
-1.530548334121704,
0.008618169464170933,
0.9531002640724182,
1.4196105003356934,
0.9770189523696899,
0.2491334229707718,
0.58216792345047,
1.590476155281067,
0.06688202917575836,
0.5912284851074219,
-0.5568219423294067,
-0.6190695762634277,
-1.3248250484466553,
-1.1945958137512207,
-1.310115098953247,
-0.7142967581748962,
0.9624256491661072,
0.030214929953217506,
-0.7071700692176819,
-1.329491376876831,
-1.2089256048202515,
0.2627672255039215,
0.7363324761390686,
0.7688787579536438,
-0.49741777777671814,
1.268431544303894,
0.9928838014602661,
1.1063992977142334,
0.165899395942688,
0.10362887382507324,
-0.8707314729690552,
-0.6509326696395874,
-1.755077838897705,
-1.3063374757766724,
-1.6163513660430908,
-0.6578387022018433,
-0.680621325969696,
-0.22083736956119537,
-0.8573488593101501,
-0.35041534900665283,
-1.0925333499908447,
-0.3843792676925659,
0.7898856997489929,
1.3367650508880615,
0.9189524054527283,
1.3290361166000366,
0.10131890326738358,
1.3698934316635132,
0.1286434382200241,
-0.7253291010856628,
-0.1618862748146057,
-1.455517053604126,
0.03764783591032028,
-1.3536484241485596,
-1.0519436597824097,
-1.102368712425232,
-1.07437002658844,
0.8636431694030762,
0.7749217748641968,
0.8868018984794617,
0.059267204254865646,
0.20887108147144318,
1.554880976676941,
1.7328338623046875,
1.6574392318725586,
0.09423288702964783,
-0.23941655457019806,
0.6016597747802734,
-0.5159286260604858,
-0.45896902680397034,
-0.5988583564758301,
-0.6909195184707642,
-1.271100401878357,
-1.7230411767959595,
-1.2443057298660278,
-1.599233865737915,
-0.5496954321861267,
-1.645702600479126,
-0.601917028427124,
-0.2875460684299469,
1.0931456089019775,
0.5997875332832336,
1.566237211227417,
1.22966730594635,
1.2093254327774048,
-0.35968607664108276,
-0.43390196561813354,
-0.6137526631355286,
0.2991188168525696,
0.2652530372142792,
-0.843012273311615,
-1.1960004568099976,
-0.9314181804656982,
-1.6544055938720703,
-1.1788768768310547,
-1.625083088874817,
-1.1066349744796753,
-0.8767375349998474,
-0.8955783843994141,
-0.47516292333602905,
0.23044440150260925,
0.4380115568637848,
1.7157890796661377,
1.6329143047332764,
0.25993165373802185,
1.3270355463027954,
-0.13288581371307373,
0.5336033701896667,
0.28808435797691345,
-0.3909056782722473,
-0.07458841800689697,
-1.7592657804489136,
-1.5602681636810303,
-1.675264596939087,
-1.6740005016326904,
-1.0372251272201538,
1.2635679244995117,
0.9389786720275879,
0.2734259068965912,
-0.23117855191230774,
1.6118382215499878,
1.5225201845169067,
1.6244443655014038,
1.5461360216140747,
1.3863155841827393,
1.5131620168685913,
-0.0928322970867157,
0.4989480972290039,
0.15169233083724976,
-0.5453267693519592,
-0.6588094830513,
-1.554460883140564,
-1.43989896774292,
-1.7288960218429565,
-1.1654797792434692,
-1.6671503782272339,
-0.35512804985046387,
1.1739448308944702,
0.06626895070075989,
0.7338117361068726,
1.3960143327713013,
1.5265229940414429,
1.664265751838684,
1.563443660736084,
1.4814398288726807,
1.424068570137024,
0.5690942406654358,
0.39433398842811584,
-0.9907390475273132,
-1.3041479587554932,
-0.4315612018108368,
-1.192265510559082,
-1.2926007509231567,
-1.2096853256225586,
-1.1455514430999756,
-1.0530451536178589,
-0.360250860452652,
-1.4914488792419434,
0.9946401119232178,
0.20970182120800018,
0.5077683329582214,
1.775773048400879,
1.6065752506256104,
1.460782766342163,
1.6805490255355835,
1.3331204652786255,
1.337679386138916,
0.24166934192180634,
-0.7490553259849548,
-0.2811664044857025,
-1.35236394405365,
-1.7132093906402588,
-1.2351900339126587,
1.3448354005813599,
-1.1301639080047607,
-1.459120750427246,
0.9142097234725952,
0.9922917485237122,
0.8919673562049866,
1.537003517150879,
1.755489468574524,
1.7933921813964844,
1.7519162893295288,
1.658876895904541,
1.5975285768508911,
0.45615020394325256,
-0.22323977947235107,
-0.6451533436775208,
-1.1315258741378784,
-1.2966467142105103,
-1.5909005403518677,
-1.5968538522720337,
-1.433286428451538,
-0.5971233248710632,
0.4708939492702484,
-0.9110822677612305,
1.4557346105575562,
-0.23283353447914124,
1.0522940158843994,
0.9501413106918335,
1.5699745416641235,
1.5931545495986938,
1.61350417137146,
1.5116722583770752,
1.2873518466949463,
1.1114286184310913,
0.258755624294281,
-0.2929762005805969,
-1.3466180562973022,
-1.4063233137130737,
-1.3217921257019043,
-1.4213918447494507,
-1.719537377357483,
-0.5935867428779602,
0.16192938387393951,
0.15584248304367065,
-0.30184030532836914,
0.0774451270699501,
1.5688303709030151,
0.5953820943832397,
1.7357265949249268,
1.6369752883911133,
1.5440952777862549,
1.5301169157028198,
0.026112958788871765,
0.6425432562828064,
-0.05458596348762512,
-1.1241093873977661,
-0.9194499850273132,
-1.255521297454834,
-1.309670329093933,
-1.1626633405685425,
-1.7420589923858643,
-1.4812431335449219,
-0.8494639992713928,
-0.25220823287963867,
-0.9375631213188171,
-0.8490588068962097,
0.470380038022995,
1.5222915410995483,
1.7011451721191406,
0.8031243681907654,
1.5918086767196655,
0.6896489262580872,
1.1773968935012817,
-0.3683306872844696,
-0.7142453789710999,
-0.9713537096977234,
-1.068410873413086,
-0.34815770387649536,
-0.9297611117362976,
-1.282157063484192,
-1.2368146181106567,
-0.27540120482444763,
-0.5067703127861023,
-1.4319669008255005,
0.19279606640338898,
-0.07041898369789124,
0.6292337775230408,
1.3997176885604858,
1.4670617580413818,
1.606366515159607,
0.9453895688056946,
0.490310937166214,
0.9830073118209839,
0.5542521476745605,
-0.6237378120422363,
-0.1365845501422882,
-1.4014512300491333,
-1.628750205039978,
-1.486925482749939,
-0.4462045431137085,
-0.8278690576553345,
-0.20497338473796844,
0.6053311228752136,
0.269463449716568,
-0.8390313982963562,
1.075843095779419,
0.7595785856246948,
0.7820119857788086,
1.5078366994857788,
1.6349693536758423,
0.1314404010772705,
0.7659013271331787,
-0.131573885679245,
-0.41338950395584106,
-0.3324352204799652,
-0.7138409614562988,
-0.5372509360313416,
-1.0307930707931519,
-0.9556679725646973,
-0.9986785650253296,
-1.0642783641815186,
-0.7952610850334167,
-0.5750700235366821,
-0.6735365986824036,
1.1381114721298218,
0.7539517879486084,
0.03860218822956085,
1.072481393814087,
1.114106297492981,
-0.934726357460022,
0.44154876470565796,
0.8167842030525208,
-0.6006396412849426,
-0.2947448790073395,
-0.6611872315406799,
0.3000542223453522,
-0.5400033593177795,
1.3366469144821167,
-1.0443168878555298,
1.308602213859558,
-0.31186729669570923,
1.1076242923736572,
-0.09007124602794647,
1.160498023033142,
0.8338593244552612,
-0.04935260862112045,
1.052345633506775,
-1.4882506132125854,
1.37422513961792,
1.3518725633621216,
0.030148740857839584,
-0.7327764630317688,
0.3653237223625183,
-0.7184453010559082,
0.582207441329956,
-1.045889973640442,
-0.625887393951416,
1.0746549367904663,
-0.5671799182891846,
0.25540608167648315,
-0.07326500862836838,
-0.48792997002601624,
-0.2127901166677475,
0.5802617073059082,
1.3357157707214355,
0.720526397228241,
-0.3667120635509491,
-0.7462166547775269,
0.9822026491165161,
-0.5295237898826599,
-1.1522475481033325,
-0.7522217631340027,
0.14334896206855774,
1.4512876272201538,
0.4850279986858368,
1.32559335231781,
-0.7918603420257568,
-0.31038686633110046,
1.708249568939209,
-1.0045711994171143,
-0.24398022890090942,
0.9027085900306702,
0.2922363877296448,
0.49757254123687744,
-0.21258603036403656,
0.23005519807338715,
0.2992172837257385,
0.8289351463317871,
-0.6940577030181885,
-0.795835018157959
],
"z": [
0.25247862935066223,
-0.5201209187507629,
-1.422930121421814,
-1.0521326065063477,
-0.05257199704647064,
-0.919045627117157,
-0.08603250980377197,
-0.3665373623371124,
0.28854358196258545,
0.41170501708984375,
-0.1361107975244522,
0.3039822578430176,
-0.6103042364120483,
-0.4989929795265198,
-0.6008402705192566,
-0.19286422431468964,
1.4104101657867432,
-0.8646129965782166,
0.4267890453338623,
0.5403592586517334,
-1.338730812072754,
-1.2566184997558594,
-0.6142240166664124,
-0.315213680267334,
0.19291117787361145,
-0.18949659168720245,
-0.24856673181056976,
-0.8636323809623718,
0.9624485969543457,
0.0007997429347597063,
-0.9066151976585388,
0.6343755722045898,
-0.5961406826972961,
-0.5652732849121094,
0.639112651348114,
-0.616364598274231,
-0.8310528993606567,
-0.4474818706512451,
-0.5239307284355164,
-0.3982047140598297,
-0.5110301375389099,
0.20601511001586914,
0.7897728085517883,
-1.2576290369033813,
-0.24336668848991394,
-0.22922076284885406,
-0.27425673604011536,
-0.21491196751594543,
0.5272048711776733,
-0.9698009490966797,
-0.34443172812461853,
-0.8786249756813049,
-0.9548211693763733,
0.030404360964894295,
0.6473854780197144,
-0.5080245733261108,
-0.00010515388567000628,
-0.76103675365448,
-0.9072094559669495,
0.9388377070426941,
-0.4464224874973297,
0.7568147778511047,
-1.4058395624160767,
-0.4622499942779541,
-0.008377118036150932,
-0.5297369360923767,
-1.1347864866256714,
-1.124145269393921,
0.3065145015716553,
-0.10182292014360428,
0.36198508739471436,
-0.8321139812469482,
-0.4040463864803314,
0.21685072779655457,
-0.5292386412620544,
0.9856938123703003,
-1.2392756938934326,
-0.9896195530891418,
-0.6342225074768066,
-0.9353980422019958,
-0.4937695264816284,
-0.343997061252594,
-0.5867534875869751,
-1.0271391868591309,
-0.5118447542190552,
-0.13835079967975616,
-0.20890739560127258,
-0.30152246356010437,
0.3556896448135376,
0.914784848690033,
0.9739790558815002,
0.9001023769378662,
-0.0559791661798954,
-0.6365620493888855,
-0.8146123886108398,
1.364690899848938,
-0.14610424637794495,
-0.07170797884464264,
-0.825549840927124,
-0.7753223776817322,
0.35577693581581116,
-0.1034231185913086,
-0.03589867055416107,
-1.133544921875,
-0.8397983908653259,
0.3348199725151062,
-0.7145067453384399,
-0.13348358869552612,
-0.41936400532722473,
-0.855025053024292,
1.3367815017700195,
0.628289520740509,
0.7177367210388184,
0.9017387628555298,
-0.2747702896595001,
-0.3661532998085022,
-0.3406483232975006,
-0.2950763404369354,
1.2785636186599731,
0.9885830879211426,
-0.19698259234428406,
-0.4475131928920746,
-1.041780948638916,
-0.8931893706321716,
-0.6741726398468018,
-0.44113314151763916,
0.5642869472503662,
0.8366304636001587,
0.23979169130325317,
0.4244847297668457,
1.3385051488876343,
0.652646005153656,
1.4847601652145386,
-0.07319941371679306,
1.4331687688827515,
0.0964164286851883,
-0.6037079095840454,
-0.7222059369087219,
-0.09311182796955109,
-0.4921453297138214,
0.38969579339027405,
-0.2733016312122345,
-1.1837118864059448,
-0.7355354428291321,
-0.6976963877677917,
0.3363126516342163,
0.3522143065929413,
0.6409688591957092,
0.9947689771652222,
0.4036443829536438,
0.9874423146247864,
0.198884978890419,
-0.001883574528619647,
-0.22303268313407898,
0.6505131125450134,
0.1942366659641266,
0.4588533341884613,
-1.110110878944397,
0.05537233129143715,
-0.9550606608390808,
-0.23459433019161224,
-0.5846961140632629,
0.11648814380168915,
-0.6348179578781128,
-0.10552750527858734,
0.23414216935634613,
-0.5217240452766418,
0.8830324411392212,
0.6278516054153442,
0.8794963955879211,
1.154626488685608,
0.8811584115028381,
1.3742344379425049,
0.0013833669945597649,
1.183777093887329,
1.236268162727356,
0.6741870045661926,
-0.40988314151763916,
-0.07625970244407654,
-0.12833383679389954,
-0.1263313740491867,
-0.9113436341285706,
-0.5769266486167908,
-0.5020799040794373,
0.2872130572795868,
-0.1193302646279335,
0.051435861736536026,
0.5741074681282043,
0.9434036016464233,
1.4419653415679932,
1.4149854183197021,
1.372450351715088,
1.328041911125183,
-0.48470669984817505,
1.1245766878128052,
0.20072142779827118,
1.2556546926498413,
-0.023168662562966347,
-0.5728554129600525,
0.003037379588931799,
-0.23164530098438263,
-0.8865780830383301,
-0.0010710505302995443,
-0.12788845598697662,
0.1425265669822693,
0.6675330996513367,
0.5460042953491211,
0.901313304901123,
0.945213794708252,
0.669986367225647,
1.2043920755386353,
0.8367606997489929,
1.2889519929885864,
-0.5794687867164612,
0.723864734172821,
-0.19198296964168549,
1.341660499572754,
-0.41921091079711914,
0.07179870456457138,
0.27789628505706787,
0.003709197510033846,
0.18566231429576874,
-0.4079318642616272,
0.20877714455127716,
-0.3535130023956299,
0.3603680431842804,
0.6286526918411255,
1.4089367389678955,
0.9004070162773132,
0.934583842754364,
0.9494833946228027,
1.1896443367004395,
1.2298882007598877,
-0.0559992678463459,
-0.1267615109682083,
-0.8425958752632141,
1.1961780786514282,
-0.5240882039070129,
0.5713120102882385,
0.6301128268241882,
0.18786932528018951,
-0.20960821211338043,
0.3096940815448761,
-0.051459964364767075,
0.45696136355400085,
0.7782992124557495,
0.5152472257614136,
0.7114264369010925,
0.6297524571418762,
0.9769810438156128,
0.07466975599527359,
0.0703081339597702,
0.9650352001190186,
-0.1365041881799698,
-0.8465286493301392,
-0.8337959051132202,
-0.40586504340171814,
0.9974926710128784,
0.5073449015617371,
-0.8744789361953735,
0.34475791454315186,
-0.08599300682544708,
0.8374577760696411,
0.41114428639411926,
0.053679682314395905,
0.5979822278022766,
0.899660050868988,
-0.2898470461368561,
-0.27407732605934143,
-0.49144601821899414,
0.2123636156320572,
-0.4481363892555237,
-0.23102831840515137,
0.15820065140724182,
-1.1764214038848877,
-1.2612066268920898,
-0.3114435076713562,
0.8424190878868103,
0.3477627635002136,
0.9072251319885254,
0.751478374004364,
-0.26006367802619934,
0.08285154402256012,
-0.39572250843048096,
0.1355595886707306,
0.00891929678618908,
0.3502693772315979,
-0.09089840948581696,
-0.5964071750640869,
-0.42753294110298157,
-0.9235694408416748,
-0.3885207176208496,
-0.5986596941947937,
-0.768949568271637,
0.24717558920383453,
-0.7443510890007019,
-0.6882625222206116,
-0.2006918340921402,
0.8934618830680847,
-0.41864532232284546,
0.306402325630188,
0.7476745247840881,
0.09925480931997299,
0.19005776941776276,
-0.024856192991137505,
0.7979829907417297,
0.6875270009040833,
-0.3951003849506378,
0.6783849596977234,
0.18603816628456116,
-0.7842507362365723,
0.6742908358573914,
0.6499669551849365,
0.918073296546936,
-0.5002454519271851,
1.216107964515686,
0.8909105658531189,
0.6188066005706787,
0.840234100818634,
-0.7983343601226807,
-1.0663707256317139,
0.1158219575881958,
-0.041625600308179855,
-0.42818522453308105,
-0.6920322775840759,
-0.8171529173851013,
0.1128421425819397,
-1.0594289302825928,
-0.4151531159877777,
-0.48944297432899475,
-1.1687790155410767,
-1.1723977327346802,
-0.6194528937339783,
-0.8994165062904358,
0.09586307406425476,
0.11391778290271759,
-0.5125714540481567,
1.264366865158081,
-0.43941161036491394,
-0.09845715761184692,
0.8130775094032288,
0.4714009463787079,
0.05458637699484825,
-0.0011975576635450125,
-0.8053545951843262,
-0.6674675345420837,
-1.0291380882263184,
-0.36741331219673157,
-0.8814748525619507,
1.0536909103393555,
-1.354200839996338,
1.3393571376800537,
0.8831523060798645,
1.1960337162017822,
0.21907199919223785,
0.331794410943985,
1.1814628839492798,
-0.6034896373748779,
-1.0625580549240112,
-0.4655229151248932,
-0.09131385385990143,
0.12695543467998505,
-0.19730867445468903,
-0.6666584014892578,
-1.1749050617218018,
-0.7397794127464294,
-0.5596379637718201,
-1.1101834774017334,
0.033360231667757034,
0.43268194794654846,
-0.3544120192527771,
-1.3419189453125,
-0.31099599599838257,
0.4814259707927704,
1.0726569890975952,
1.2350269556045532,
1.069932460784912,
-0.13788539171218872,
0.8794074058532715,
0.1118943840265274,
0.578197717666626,
0.00862057600170374,
-0.7703072428703308,
-0.3936803638935089,
-0.34856998920440674,
-0.3897494077682495,
0.2303866744041443,
-1.0141925811767578,
-0.17117024958133698,
-1.2712700366973877,
-1.3510351181030273,
-0.025684736669063568,
-0.4274519085884094,
0.003636765293776989,
-0.8887197971343994,
1.0626710653305054,
0.8082476258277893,
0.8474656939506531,
-0.02681146003305912,
-0.0799470990896225
]
}
],
"layout": {
"height": 900,
"scene": {
"domain": {
"x": [
0,
0.45
],
"y": [
0.575,
1
]
}
},
"scene2": {
"domain": {
"x": [
0.55,
1
],
"y": [
0.575,
1
]
}
},
"scene3": {
"domain": {
"x": [
0,
0.45
],
"y": [
0,
0.425
]
}
},
"scene4": {
"domain": {
"x": [
0.55,
1
],
"y": [
0,
0.425
]
}
},
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": ""
},
"width": 1600
}
}
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plot_data(data,transformation=\"PCA\", labels=decoding1,\n",
" colors=[\"Twilight\",\"Viridis\",\"Twilight\",\"Viridis\",\"Twilight\"])\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"# Decode second parameter\n",
"reduced_data = remove_feature(data, decoding1, cut_amplitude=0.5)\n",
"decoding2 = cohomological_parameterization(reduced_data, coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"# data['phase'] = stim_val['pair'][:,1]\n",
"# data['orientation'] = stim_val['pair'][:,0]\n",
"# data"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>decoding</th>\n",
" <th>phase</th>\n",
" <th>orientation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.217130</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.329715</td>\n",
" <td>18.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.244882</td>\n",
" <td>36.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.260258</td>\n",
" <td>54.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.781878</td>\n",
" <td>72.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>395</th>\n",
" <td>0.204446</td>\n",
" <td>270.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>396</th>\n",
" <td>0.207642</td>\n",
" <td>288.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>397</th>\n",
" <td>0.181627</td>\n",
" <td>306.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>398</th>\n",
" <td>0.552974</td>\n",
" <td>324.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>399</th>\n",
" <td>0.558591</td>\n",
" <td>342.0</td>\n",
" <td>171.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>400 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" decoding phase orientation\n",
"0 0.217130 0.0 0.0\n",
"1 0.329715 18.0 0.0\n",
"2 0.244882 36.0 0.0\n",
"3 0.260258 54.0 0.0\n",
"4 0.781878 72.0 0.0\n",
".. ... ... ...\n",
"395 0.204446 270.0 171.0\n",
"396 0.207642 288.0 171.0\n",
"397 0.181627 306.0 171.0\n",
"398 0.552974 324.0 171.0\n",
"399 0.558591 342.0 171.0\n",
"\n",
"[400 rows x 3 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoding2['phase'] = stim_val['pair'][decoding2.index][:,1]\n",
"decoding2['orientation'] = stim_val['pair'][decoding2.index][:,0]\n",
"decoding2"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"def phasor_avg(x, period):\n",
" return np.angle(np.sum(np.exp(2*np.pi*1j*x/period)))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"statistic, bin_edges, bin_number = sts.binned_statistic(decoding2['decoding'], decoding2['orientation'], lambda x:phasor_avg(x, period=360), 20)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'decoded phase bin')"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(bin_edges[:-1], statistic)\n",
"plt.ylabel('avg. actual phase')\n",
"plt.xlabel('decoded phase bin')"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual parameter')"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding2['decoding'], stim_val['pair'][decoding2.index][:,1])\n",
"plt.xlabel('decoded parameter')\n",
"plt.ylabel('actual parameter')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"# Decode second parameter\n",
"reduced_data2 = remove_feature(reduced_data, decoding2, cut_amplitude=0.5)\n",
"decoding3 = cohomological_parameterization(reduced_data2, coeff=23)\n",
"decoding3['phase'] = stim_val['pair'][decoding3.index][:,1]\n",
"decoding3['orientation'] = stim_val['pair'][decoding3.index][:,0]"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'actual parameter')"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding3['decoding'], stim_val['pair'][decoding3.index][:,1])\n",
"plt.xlabel('decoded parameter')\n",
"plt.ylabel('actual parameter')"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'decoded phase bin')"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGwCAYAAABPSaTdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/6klEQVR4nO3deVxU9f7H8fcAsiibYGxdVFxySVPTNNIWjdIW1LTFMjOvZRlmLql5u2paSnory0q9di27N8s2tawuVq6puCRaKoob5QrcJED0ByJzfn/4YO6dlGJghhkOr+fjMY9H8z1nzny+MDLvzvl+v8diGIYhAAAAk/JydwEAAACuRNgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACmRtgBAACm5uPuAjyB1WrViRMnFBQUJIvF4u5yAABABRiGodOnTysmJkZeXuWfvyHsSDpx4oRiY2PdXQYAAKiEo0eP6k9/+lO52wk7koKCgiRd+GEFBwe7uRoAAFARBQUFio2NtX2Pl4ewI9kuXQUHBxN2AACoYf5oCAoDlAEAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKmxgrKLlFoNbc3MVc7pIkUE+atzXJi8vbjJKMyNzz0AT0TYcYGU3Sc1dUW6TuYX2dqiQ/w1JbG1erWJdmNlgOvwuQfgqbiM5WQpu09q+Htpdn/wJSkrv0jD30tTyu6TbqoMcB0+9wA8GWHHiUqthqauSJdxiW1lbVNXpKvUeqk9gJqJzz0AT0fYcaKtmbkX/Z/t/zIkncwv0tbM3OorCnAxPvcAPB1hx4lyTpf/B78y+wE1AZ97AJ7OrWFn/fr1SkxMVExMjCwWi5YvX37RPnv37lXv3r0VEhKievXq6ZprrtGRI0ds24uKipSUlKTw8HAFBgaqf//+ys7OrsZe/FdEkL9T9wNqAj73ADydW8POmTNn1K5dO7355puX3H7o0CF169ZNLVu21Nq1a/Xjjz9q0qRJ8vf/7x/N0aNHa8WKFfr444+1bt06nThxQv369auuLtjpHBem6BB/lTfR1qILs1M6x4VVZ1mAS/G5B+DpLIZheMSoQYvFomXLlqlv3762tgEDBqhOnTr617/+dcnX5Ofn67LLLtP777+vu+++W5K0b98+tWrVSqmpqbr22msr9N4FBQUKCQlRfn6+goODq9SPslkpkuwGbJZ9Ecx78Gqm4cJ0+NwDcIeKfn977Jgdq9WqL7/8UldccYV69uypiIgIdenSxe5S1/bt21VSUqKEhARbW8uWLdWwYUOlpqaWe+zi4mIVFBTYPZylV5tozXvwakWF2J+yjwrx5w8+TIvPPQBP5rGLCubk5KiwsFAvvviiXnjhBc2cOVMpKSnq16+f1qxZoxtvvFFZWVny9fVVaGio3WsjIyOVlZVV7rGTk5M1depUl9Xeq020bmkdxUqyqFX43APwVB4bdqxWqySpT58+Gj16tCSpffv22rRpk+bPn68bb7yx0seeOHGixowZY3teUFCg2NjYqhX8G95eFsU3DXfqMQFPx+cegCfy2LDToEED+fj4qHXr1nbtrVq10oYNGyRJUVFROnfunPLy8uzO7mRnZysqKqrcY/v5+cnPz88ldQMAAM/isWN2fH19dc011ygjI8Ouff/+/WrUqJEkqWPHjqpTp45WrVpl256RkaEjR44oPj6+WusFAACeya1ndgoLC3Xw4EHb88zMTO3cuVNhYWFq2LChxo0bp/vuu0833HCDunfvrpSUFK1YsUJr166VJIWEhGjo0KEaM2aMwsLCFBwcrCeffFLx8fEVnokFAADMza1Tz9euXavu3btf1D548GAtWrRIkvT2228rOTlZx44dU4sWLTR16lT16dPHtm9RUZHGjh2rDz74QMXFxerZs6fmzp37u5exfsuZU88BAED1qOj3t8ess+NOhB0AAGqeGr/ODgAAgDMQdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKkRdgAAgKm5NeysX79eiYmJiomJkcVi0fLly8vd9/HHH5fFYtGrr75q156bm6uBAwcqODhYoaGhGjp0qAoLC11bOAAAqDHcGnbOnDmjdu3a6c033/zd/ZYtW6bNmzcrJibmom0DBw7Unj179M033+iLL77Q+vXrNWzYMFeVDAAAahgfd775bbfdpttuu+139zl+/LiefPJJrVy5UnfccYfdtr179yolJUXbtm1Tp06dJEmvv/66br/9dr300kuXDEeSVFxcrOLiYtvzgoKCKvYEAAB4Ko8es2O1WjVo0CCNGzdOV1555UXbU1NTFRoaags6kpSQkCAvLy9t2bKl3OMmJycrJCTE9oiNjXVJ/QAAwP08OuzMnDlTPj4+Gjly5CW3Z2VlKSIiwq7Nx8dHYWFhysrKKve4EydOVH5+vu1x9OhRp9YNAAA8h1svY/2e7du367XXXlNaWposFotTj+3n5yc/Pz+nHhMAAHgmjz2z89133yknJ0cNGzaUj4+PfHx89PPPP2vs2LFq3LixJCkqKko5OTl2rzt//rxyc3MVFRXlhqoBAICn8dgzO4MGDVJCQoJdW8+ePTVo0CANGTJEkhQfH6+8vDxt375dHTt2lCStXr1aVqtVXbp0qfaaAQCA53Fr2CksLNTBgwdtzzMzM7Vz506FhYWpYcOGCg8Pt9u/Tp06ioqKUosWLSRJrVq1Uq9evfToo49q/vz5Kikp0YgRIzRgwIByZ2IBAIDaxa2Xsb7//nt16NBBHTp0kCSNGTNGHTp00OTJkyt8jMWLF6tly5a6+eabdfvtt6tbt25asGCBq0oGAAA1jMUwDMPdRbhbQUGBQkJClJ+fr+DgYHeXAwAAKqCi398eO0AZAADAGQg7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1Ag7AADA1NwadtavX6/ExETFxMTIYrFo+fLltm0lJSWaMGGC2rZtq3r16ikmJkYPPfSQTpw4YXeM3NxcDRw4UMHBwQoNDdXQoUNVWFhYzT0BAACeyq1h58yZM2rXrp3efPPNi7adPXtWaWlpmjRpktLS0rR06VJlZGSod+/edvsNHDhQe/bs0TfffKMvvvhC69ev17Bhw6qrCwAAwMNZDMMw3F2EJFksFi1btkx9+/Ytd59t27apc+fO+vnnn9WwYUPt3btXrVu31rZt29SpUydJUkpKim6//XYdO3ZMMTExFXrvgoIChYSEKD8/X8HBwc7oDgAAcLGKfn/XqDE7+fn5slgsCg0NlSSlpqYqNDTUFnQkKSEhQV5eXtqyZUu5xykuLlZBQYHdAwAAmFONCTtFRUWaMGGC7r//flt6y8rKUkREhN1+Pj4+CgsLU1ZWVrnHSk5OVkhIiO0RGxvr0toBAID71IiwU1JSonvvvVeGYWjevHlVPt7EiROVn59vexw9etQJVQIAAE/k4+4C/khZ0Pn555+1evVqu2tyUVFRysnJsdv//Pnzys3NVVRUVLnH9PPzk5+fn8tqBgAAnsOjz+yUBZ0DBw7o22+/VXh4uN32+Ph45eXlafv27ba21atXy2q1qkuXLtVdLgAA8EBuPbNTWFiogwc
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"statistic, bin_edges, bin_number = sts.binned_statistic(decoding3['decoding'], decoding3['orientation'], lambda x:np.mean(x), 20)\n",
"plt.scatter(bin_edges[:-1], statistic)\n",
"plt.ylabel('avg. actual phase')\n",
"plt.xlabel('decoded phase bin')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cohomological decoding"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(400, 40)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = stim_hist['pair'][:, tau_id, :].T\n",
"data.shape"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Applying density filtration... done\n",
"PCA explained variance:\n",
"[0.09915744 0.09316687 0.05514839 0.04694839 0.0445427 0.04056454\n",
" 0.03954761 0.03686482 0.03428718 0.03158143]\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"tau_id = 0\n",
"data = stim_hist['pair'][:, tau_id, :].T\n",
"data = pd.DataFrame(data)\n",
"\n",
"## Apply noise reduction\n",
"data = sts.zscore(data, axis=0)\n",
"data = density_filtration(data, 15, 0.5)\n",
"data = PCA_reduction(data, 10)\n",
"# data = z_cutoff(data,2)\n",
"\n",
"## Analyze shape\n",
"persistence(data,homdim=1,coeff=2)\n",
"persistence(data,homdim=1,coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "39bc1ace7ade41cd875a4767695e9be9",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAJYCAYAAABy5h8aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eXhceXUn/r9vrSpVSSqV9t22vNu9eOm2JZPQG4SEdOA3kIQtLCEzhIFnIEwmQAiETMhANgKEhIQQ0nlYEgikwzcDgUA3bky797Zk7Zu171aVllLtde/vD8/n9q1SLbdWleT363l4krZVda/KUp1PnfP5nCMpiqKAiIiIiIiIiIioRBl2+waIiIiIiIiIiIhSYQKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREcV5+9vfDkmScPny5d2+laK57777IEkSpqamdvtWiIiI9pQDBw5AkqTdvg0ion2PCSwiohJTiIWwJEk4cOBAXp+TiIiIiIioWCRFUZTdvgkiolKyuLiIjY0NtLe3o7y8vOjXP3DgAKanp5HPt2dJktDR0ZF0h9XMzAx8Ph86OzthNpvzdl0i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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAJYCAYAAABy5h8aAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eXhceXUn/r9vrSpVSSqV9t22vNu9eOm2JZPQG4SEdOA3kIQtLCEzhIFnIEwmQAiETMhANgKEhIQQ0nlYEgikwzcDgUA3bky797Zk7Zu171aVllLtde/vD8/n9q1SLbdWleT363l4krZVda/KUp1PnfP5nCMpiqKAiIiIiIiIiIioRBl2+waIiIiIiIiIiIhSYQKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREREREREREVFJYwKLiIiIiIiIiIhKGhNYRERERERERERU0pjAIiIiIiIiIiKiksYEFhERERERERERlTQmsIiIiIiIiIiIqKQxgUVERERERERERCWNCSwiIiIiIiIiIippTGAREcV5+9vfDkmScPny5d2+laK57777IEkSpqamdvtWiIiI9pQDBw5AkqTdvg0ion2PCSwiohJTiIWwJEk4cOBAXp+TiIiIiIioWCRFUZTdvgkiolKyuLiIjY0NtLe3o7y8vOjXP3DgAKanp5HPt2dJktDR0ZF0h9XMzAx8Ph86OzthNpvzdl0i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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib inline\n",
"%matplotlib widget\n",
"X = np.array(data)\n",
"fig, ax = plt.subplots(1, 2, figsize=(12, 6))\n",
"ax[0] = fig.add_subplot(1, 2, 1, projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax[0].scatter3D(x, y, z, c=stim_val['pair'][data.index][:,0])\n",
"ax[0].set_title(\"orientation\", pad=25, size=15)\n",
"ax[0].set_xlabel(\"X\") \n",
"ax[0].set_ylabel(\"Y\") \n",
"ax[0].set_zlabel(\"Z\")\n",
"\n",
"ax[1] = fig.add_subplot(1, 2, 2, projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax[1].scatter3D(x, y, z, c=stim_val['pair'][data.index][:,1])\n",
"ax[1].set_title(\"phase\", pad=25, size=15)\n",
"ax[1].set_xlabel(\"X\") \n",
"ax[1].set_ylabel(\"Y\") \n",
"ax[1].set_zlabel(\"Z\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"## Decode first parameter\n",
"%matplotlib inline\n",
"decoding1 = cohomological_parameterization(data, coeff=23)\n",
"# show_feature(decoding1)\n",
"# plot_mean_against_index(data,decoding1,\"orientation\")\n",
"# plot_mean_against_index(data,decoding1,\"phase\")\n",
"# plot_data(data,transformation=\"PCA\", labels=decoding1,\n",
"# colors=[\"Twilight\",\"Viridis\",\"Twilight\",\"Viridis\",\"Twilight\"])\n",
"\n",
"## Decode second parameter\n",
"# reduced_data = remove_feature(data, decoding1, cut_amplitude=0.5)\n",
"# decoding2 = cohomological_parameterization(reduced_data, coeff=23)\n",
"# show_feature(decoding2)\n",
"# plot_mean_against_index(data,decoding2,\"orientation\")\n",
"# plot_mean_against_index(data,decoding2,\"phase\")\n",
"# plot_data(data,transformation=\"PCA\", labels=decoding2,\n",
"# colors=[\"Twilight\",\"Viridis\",\"Twilight\",\"Viridis\",\"Twilight\"])\n"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(400,)"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"stim_val['pair'][:,1].shape"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>decoding</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>261</th>\n",
" <td>0.932910</td>\n",
" </tr>\n",
" <tr>\n",
" <th>396</th>\n",
" <td>0.930706</td>\n",
" </tr>\n",
" <tr>\n",
" <th>322</th>\n",
" <td>0.932025</td>\n",
" </tr>\n",
" <tr>\n",
" <th>253</th>\n",
" <td>0.930178</td>\n",
" </tr>\n",
" <tr>\n",
" <th>113</th>\n",
" <td>0.931438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>310</th>\n",
" <td>0.930397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>327</th>\n",
" <td>0.932556</td>\n",
" </tr>\n",
" <tr>\n",
" <th>207</th>\n",
" <td>0.929700</td>\n",
" </tr>\n",
" <tr>\n",
" <th>160</th>\n",
" <td>0.929805</td>\n",
" </tr>\n",
" <tr>\n",
" <th>233</th>\n",
" <td>0.931270</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>200 rows × 1 columns</p>\n",
"</div>"
],
"text/plain": [
" decoding\n",
"261 0.932910\n",
"396 0.930706\n",
"322 0.932025\n",
"253 0.930178\n",
"113 0.931438\n",
".. ...\n",
"310 0.930397\n",
"327 0.932556\n",
"207 0.929700\n",
"160 0.929805\n",
"233 0.931270\n",
"\n",
"[200 rows x 1 columns]"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"decoding1"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2658dcc5a90>"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding1, stim_val['pair'][decoding1.index][:,1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Orientation"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"tau_id = 60\n",
"Z = sts.zscore(stim_hist['orientation'][:, tau_id, :].T)\n",
"# Z = Z[:, np.logical_not(np.isnan(Z[0]))]\n",
"# n_components = len(Z[0])\n",
"n_components = 20\n",
"pca = PCA(n_components)\n",
"X = pca.fit_transform(Z)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"PC_values = np.arange(n_components)\n",
"plt.plot(PC_values, pca.explained_variance_ratio_, 'o-', linewidth=2, color='blue')\n",
"plt.title('Scree Plot')\n",
"plt.xticks(np.arange(20))\n",
"plt.xlabel('Principal Component')\n",
"plt.ylabel('Variance Explained')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "aac5c2dd86794756b4786d419f445896",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib widget\n",
"fig = plt.figure(figsize=(9, 6))\n",
"ax = plt.axes(projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax.scatter3D(x, y, z, c=stim_val['orientation'])\n",
"ax.set_title(\"3D scatterplot\", pad=25, size=15)\n",
"ax.set_xlabel(\"X\") \n",
"ax.set_ylabel(\"Y\") \n",
"ax.set_zlabel(\"Z\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# @title run a manifold embedding algorithm (UMAP) in two or three dimensions. \n",
"# !pip install umap-learn --quiet\n",
"from umap import UMAP\n",
"\n",
"cut_off_dim = 3\n",
"X_reduced = X[:,:cut_off_dim]\n",
"ncomp = cut_off_dim # try 2, then try 3\n",
"xinit = 3 * sts.zscore(X_reduced, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\umap\\umap_.py:2344: UserWarning:\n",
"\n",
"n_neighbors is larger than the dataset size; truncating to X.shape[0] - 1\n",
"\n"
]
}
],
"source": [
"embed3d = UMAP(n_components=ncomp, init = xinit, n_neighbors = 25, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(X_reduced)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 9 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.figure(figsize=(8,8))\n",
"for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" ax.plot(embed3d[:,i])\n",
" \n",
" # ax.set_xticks(np.arange(20)[::5])\n",
" # ax.set_xticklabels(stim_val['phase'][::5])\n",
" # ax.set_yticks(np.arange(20)[::5])\n",
" # ax.set_yticklabels(stim_val['orientation'][::5])\n",
" # ax.set_xlabel('phase')\n",
" # ax.set_ylabel('orientation')\n",
" else:\n",
" plt.scatter(embed3d[:,j], embed3d[:,i], s = 1, c=stim_val['orientation'], cmap = 'hot')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Phase"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PCA explained variance:\n",
"[0.23149159 0.14506975 0.11324264 0.07172362 0.07017238]\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQMAAAEGCAYAAABhHPB4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAi6klEQVR4nO3de3gU9dn/8fcdCARCBAKRU4IkchYQJahYKyioQJHaSkEr9kdrRQGtVPpQ60+fC5/6k5+P2traesBarYhWFKqCh6IYdIMUGiSCEBGfcEg4aAIECIEAyf38sUlMQkg2yc7O7uz9ui6ua2dnZ+aOZj/5zne+8x1RVYwxJsbtAowx4cHCwBgDWBgYYypYGBhjAAsDY0yFlm4XUF3nzp21V69ebpdhjOcUFxeTm5vLyZMnC1U1qa7PhFUY9OrVi6ysLLfLMMZTfD4f48aNIy0tja1bt+480+fsNMEYD6sMguTkZDIyMur9rIWBMR61a9euGkHQrVu3ej9vYWCMR/Xs2ZOHH344oCCAMOszMMY0X2ZmJvHx8VxwwQXMmjUr4O2sZWCMh/h8PsaOHcudd95JY+87sjAwxiMqOwtTUlJ47bXXEJFGbW9hYIwHVA+CDz/8MKA+gto80Wewdd8RZi5aT/7BY0wY0p3/njSEFjGNS0VjItmf/vSnZgUBgITTfAYJCQk6bNiwGu9NnjyZmTNnUlJSwvjx40/bZtq0aSw50pvsbbsoeGM+AGlJ7Tg7oTUAM2bMYMqUKeTl5XHzzTeftv2cOXO49tpr2bp1K7fddttp6++77z7GjBlDdnY2s2fPPm39Qw89xKWXXsonn3zCvffee9r6xx9/nKFDh/LBBx/w4IMPnrb+mWeeoV+/fixbtozHHnvstPULFy4kJSWFV199laeeeuq09a+//jqdO3fmhRde4IUXXjht/TvvvEPbtm158sknWbx48WnrV61aBcCjjz7K8uXLa6xr06YN7777LgC//e1vWblyZY31nTp1YsmSJQD85je/Yc2aNTXWJycn89JLLwEwe/ZssrOza6zv27cvCxYsAGD69Ol8+eWXNdYPHTqUxx9/HICpU6eSn59fY/2IESOYP9////z6669n//79NdaPHj2a+++/H4Bx48Zx7NixGusnTJjAr371KwBGjRpFbYH87k2bNo3CwkImTZp02vpQ/O6NGDGCNWvWcM8991BWVkZsbGzV+rp+9z766KP1qpp+2s7wyGlCwZHSGssnTpW7VIkxoZOdnc2oUaM4fPgwMTExNYKgKcKqZZCenq5NGY78u/e/5I8rtwHQrnVL3ph1Kb3PTgh2ecaEjep9BBkZGXTt2jWg7UTkjC0DT/QZ3H1VX4b0aE/+wRJG9jub1M7xbpdkjGNqdxYGGgQN8UQYAIwZ2MXtEoxx3CeffNLsqwZn4ok+A2OiRXJyMiNHjgx6EICFgTERIScnh7KyMnr27Mnbb78d9CAACwNjwp7P52P48OHMmzfP0eNYGBgTxqp3Fs6cOdPRYzkaBiLySxHZLCKfi8grIhLn5PGM8ZJgDDFuDMfCQER6AL8A0lV1ENACuMGp4xnjJUePHuX6668PWRCA85cWWwJtROQk0BbY4/DxjPGE+Ph4lixZQu/evUMSBOBgy0BVdwOPAruAvcAhVV1R+3MiMl1EskQkq6CgwKlyjIkImZmZPPfccwB897vfDVkQgLOnCR2B7wOpQHcgXkSm1v6cqi5Q1XRVTU9KqnMGZ2OiQmZmJmPHjuWxxx6jtLS04Q2CzMkOxDHAdlUtUNWTwFLgUgePZ0zEqgyClJQUVq5cSevWrUNeg5NhsAu4RETain/KldFAjoPHMyYiVQ+CUHUW1sXJPoO1wOvAp8CmimMtcOp4xkSqtWvXuh4E4JFbmI2JRKWlpVWnA0ePHiU+3vm7beu7hdlGIBrjgszMTM4991zWr18PEJIgaIiFgTEhVtlHkJCQQPfu3d0up4qFgTEhFC6dhXXxzOQmxoSb/cf249vtIzEukcuTL2fjxo1hGwRgYWCMIwqPFXLD8hv4uuRrAKYOmMovh/6SW2+9lblz54ZdEICdJhjjiIy8jKogKPmqhJf+/RKxsbH8/ve/D8sgAAsDYxzRoXUHAI5uPcqOR3bw9cKvG/24s1CzMDDGAWN6jmF4yXB2/m4nrTu15vmnn3e7pAZZn4ExDsjMzGTxfyymb2rfsOwsrIu1DIwJsvLycmbPnh22Vw3OxFoGxgRZTEwMy5YtQ0QiJgjAWgbGBI3P52P69OmcOnWK7t27R1QQgLUMjAmK6pOXFhUV0blzZ7dLajRrGRjTTLVnMY7EIAALA2OaJdTTmTvJwsCYZlBVBgwYEPFBABYGxjTJvn37ALj88stZt25dxAcBWBgY02g+n48+ffqwcOFCgLAfZhwoCwNjzuTYQSgvr/FWZR9BcnIyY8aMcakwZ9ilRWNqO1YEiyZB/r8hoTtMXQJdBnqqs7Au1jIwprZP/ugPAoAje+C9X7N3717Gjx/v2SAACwNjTld65LTlbt268cQTT3g2CMDCwJjTDfsptG4PgG9XOZ+0uQqAadOmeTYIwMLAmNN1GQgzP8GXNpdxr5Yx+4k3CafnizjFwsCYOvg2bmfczPkkp/TkzTff9Mzlw/pYGBhTS/XLhxkZGZ4+NajOwsCYWv76179GXRCAjTMwpoqqIiIsWLCAoqIikpKS3C4ppKxlYAz+U4OLL76Yffv2ERsbG3VBABYGxlT1ERw+fDgqrhqciYWBiWrR2llYFwsDE7X+9a9/WRBUY2FgolZqaipXX321BUEFCwMTdTZt2sTJkyfp0qULS5cutSCoYGFgoorP52PEiBHce++9bpcSdiwMTNSoPh/B3Xff7XY5YcfRMBCRDiLyuoh8ISI5IjLCyeMZcyZen5gkGJwegfgH4D1VnSQirYC2Dh/PeNnnS6HgCzh3NPS8OODNjh8/zpQpUywIGuBYGIhIe+ByYBqAqp4ATjh1PONxvsdg5X/5X3/8KNz8D0gbGdCmcXFxvPHGG6SkpFgQ1MPJ04RUoAB4XkQ2iMhfRCS+9odEZLqIZIlIVkFBgYPlmIj2+T++fa1lkLOswU18Ph9//OMfAbjooossCBrgZBi0BC4EnlLVC4CjwD21P6SqC1Q1XVXTo3E8uAlQh571L9dS2Ufw1FNPcezYMQcL8w4n+wzygXxVXVux/Dp1hIExAZnwOzh5FAq2Qu8xcMmMM360dmdhmzZtQlho5HIsDFR1n4jkiUg/Vd0KjAa2OHU843EJXeEnbzb4Mbtq0HROX024E1hUcSUhF/ipw8czUW7Lli307NmTlStXWhA0koTTLZvp6emalZXVpG3zDpTw9eHjDOx+Fm1b2Zwt0aakpIS2bf1Xro8fP05cXJzLFYUnEVmvqul1rfPECMS3PtvDFY+uYtLTa5jwRCYHjtoVzGji8/lIS0tj9erVABYETeSJMHjkn19wqtzfwsktOMrf/73L5YpMqFT2EXTs2JG0tDS3y4lonmhPt4yJqbXs/Wmto8bGxfDNFkgb5f9XjXUWBpcnWgb3fW8AcbH+H2VQj7O48aL6r0GbCOF7DJbeCpm/hxevgy9XVK3asmWLBUGQeaJlMHpAF9bcM5r9R0s5p1M8sS08kXGmxihDhS+WQ9+rAejXrx+/+MUvuPPOOy0IgsQz35qO8a3ofXaCBYGXJNbqA4hpyZo1a9i9ezctWrTgoYcesiAIIvvmmPA17hHoOxZi/SMIM5c+w1VXXs6MGWcefWiazsLAhK/4TnD5XDh5jMxdpxj7Ugkp7cp55v/bLEVOsDAw4a1lq2+DoH0MH/6kLd16JLtdlSdZGJiwpl0G8eu1Hb8Ngon3Q3sLAyd44mqC8S4R4c2Psjl1cDddu3WHdnabu1M80TIoOFLKrEWf8v0/ZfLsx7lul2OCwOfzcdNNN3HixAk6d+5M1z7nWxA4zBMtg7sXZ+PbVgjAZ/mHSO7YhnGD7ZJTpKo+srCoqIizzz7b7ZKigidaBlv3Hamx/EWtZRM5ag8xtiAIHU+EwXf7fNt8jBH4Tu/OLlZjmsruNXCXJ04THvr
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAasAAAGwCAYAAAAXAEo1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+9UlEQVR4nO3de1jUVf4H8PfMcBtu4wVFQEBFSiUFFLW0EsVK00xXa1NLzbattKzsolbWZiXVluuWqdnFrMzUyku2+svVxOyyKOCMLHm/QIoioNwZmJnv7w+XiYEBB5iZ852Z9+t55nnicGA+Tjbvzvf7mXMUkiRJICIikjGl6AKIiIiuhmFFRESyx7AiIiLZY1gREZHsMayIiEj2GFZERCR7DCsiIpI9L9EFtIXJZMK5c+cQFBQEhUIhuhwiImohSZJQVlaG8PBwKJVNr59cOqzOnTuHyMhI0WUQEVEb5eXloWvXrk1+36XDKigoCMCVP2RwcLDgaoiIyBbZ2dkYO3YsLl26hPj4eGi1WvP7eVNcOqzqLv0FBwczrIiIXIRKpYLRaMTAgQPx1VdfITo6+qq3clw6rIiIyPUMHjwYe/bsQffu3Zu9T1UfuwGJiMjhdDodDhw4YP46MTER7dq1s/nnubIiIiKH0ul0GDFiBAwGA9LS0hAfH9/i38GVFREROUxdUBUVFeGaa65BdHR0q34Pw4qIiByiflANHDgQ33//fYsu/dXHsCIiIruzZ1ABDCsiIrKzI0eO2DWoADZYEBGRnUVGRiIhIQGlpaV2CSqAYUVERHbm7++PrVu3oqamxi5BBfAyIBER2YFOp8PixYshSRKAK4Flr6ACuLIiIqI2qt9M0b59ezzyyCN2fw6urIiIqNUadv1NnjzZIc/DlZWNJEnCT8eLkJV7CTGdA3FLn1B4q5j1ROS57N2e3hyGlQ0kScKj67LwnS7fPBbfVYMvHrweAb58CYnI8zgzqAA3CauKigqoVKpG4yqVCn5+fhbzmqJUKqFWq63O/fHYRXx74NQfkxUKaH8vwbr0XPzlph6orKw031RsSKFQwN/f3/x1S+ZWVVXBZDI1WXNAQECr5lZXV8NoNNplrr+/v3lrf71eD4PBYJe5arXavBtzTU0Namtr7TLXz8/P/HelJXNra2tRU1PT5FxfX194eXm1eK7BYIBer29yro+PD7y9vVs812g0orq6usm53t7e8PHxafFck8mEqqoqu8z18vKCr68vgCv/Q1hZWWmXuS35795e7xFXm+tu7xEGgwEjR45EUVERBgwYgE2bNsHb29vqa3K1/+6bex0tSC6spKREAtDk4/bbb7eY7+/v3+TcYcOGWcwNCQlpcq5Pl1gpet426ZHPD0iSJEnR0dFNzu3Tp4/F7+3Tp0+Tc6Ojoy3mJiUlNTk3JCTEYu6wYcOanOvv728x9/bbb2/2datv0qRJzc4tLy83z50+fXqzcwsKCsxzZ82a1ezcU6dOmec+/fTTzc7Nzs42z33ppZeanZuenm6e++abbzY794cffjDPXbZsWbNzt23bZp67evXqZudu2LDBPHfDhg3Nzl29erV57rZt25qdu2zZMvPcH374odm5b775pnluenp6s3Nfeukl89zs7Oxm5z799NPmuadOnWp27qxZs8xzCwoKmp07ffp089zy8vJm506aNMni73Bzcx31HpGUlGQx1x3fIz788ENp8ODB0p133tnsXFvfI0pKSqTm8KZLG3QPCbj6JCIiN/TAAw9g37595tW8oyn+938eLqm0tBQajQbnzp2zelKwvZb4eoMR97z/Kw6fL7syoFAgtEMwtj12I0KD/dxuic/LgI3n8jIgLwN6+mXAQ4cOYd68eVizZg26devW7Nz6rvbffWlpKcLDw1FSUtLsie9uEVZX+0PaQ1l1LT779Qyyci8jplMgZgzphi4av6v/IBGRi6vfTDF9+nR88skndvvdtr6Pu0WDhTME+XljVnJP0WUQETlVw66/pUuXCqmD96yIiMgqZ7enN4dhRUREjcgpqACGFRERNSBJEh544AHZBBXAsCIiogYUCgU2btyISZMmySKoADZYEBHR/1RWVppb47t164aNGzcKrugPXFkRERG0Wi169uyJzZs3iy7FKoYVEZGH02q1SElJQX5+Pt56661mPzwsCsOKiMiD1QVVXTPFtm3bzDvCyIn8KiIiIqdoGFRyaaawhmFFROSBXCmoAMFhZTQasXDhQnTv3h1qtRoxMTF45ZVXmtzEkYiI7OPTTz91maACBLeuv/HGG1ixYgXWrFmDuLg4HDhwAPfffz80Gg3mzJkjsjQiIrf297//HZ06dcLDDz8s+6ACBO+6PnbsWISGhuKjjz4yj02cOBFqtRqff/75VX/embuuExG5uhMnTiA6Otp8RI0c2Po+LvQy4JAhQ7Br1y4cPXoUwJVrqPv27cPo0aOtztfr9SgtLbV4EBHR1el0OgwePBhTpkxp9iw5uRIar/Pnz0dpaSl69eoFlUoFo9GI1157DVOnTrU6PzU1FS+//LKTqyQicm31N6U9ffo0KisrXe5qlNCV1YYNG7B27Vp88cUXyMzMxJo1a/DWW29hzZo1VucvWLAAJSUl5kdeXp6TKyYici3Wdk93taACBN+zioyMxPz58zF79mzz2KuvvorPP/8chw8fvurP854VEVHT5HbMhzUucc+qsrKy0SelVSqVLLf6ICJyJa4QVC0h9J7VHXfcgddeew1RUVGIi4tDVlYWlixZgpkzZ4osi4jI5RUUFKCiosItggoQfBmwrKwMCxcuxKZNm1BQUIDw8HBMnjwZL774Inx8fK7687wMSETUtJ9++glxcXGyDipb38eFhlVbMayIiP6g0+ng4+ODXr16iS7FZi5xz4qIiOyj7h5VcnKy+bOr7oRhRUTk4uo3U0RFRaFz586iS7I7hhURkQtzt66/pjCsiIhclKcEFcCwIiJySTk5OR4TVIDgz1kREVHrREREICYmBj169HD7oAIYVkRELkmj0eD777+HJEluH1QALwMSEbkMnU6H5cuXm7/WaDQeEVQAV1ZERC6hfjOFRqNp8igld8WVFRGRjBRXF6O8ptxirGHX35gxYwRVJw5XVkREMvB72e94ft/zyCzIhJfSC7d3vx0Lr1+IozlHParrrykMKyIiGXhyz5M4XHzlHD+DyYCtJ7ai/Ew51j6+1uODCmBYEREJd/zScXNQ1TGUGbB8wXIYyg0eH1QAw4qISDiFQtFozCvIC13v6IpOxzt5fFABbLAgIhIupl0M4jrGNRqf/eRs7Nu3z+ODCmBYERHJwtLhS3FN1TU4s/QMvGq8cNc1d2FO/zk2HUTrCRhWREQyUHCiAGkvpKHsYBkGZQ7Cize8CB8Vg6oOw4qISLCGn6N6I/UN0SXJDsOKiEggTzrmoy0YVkREgjCobMewIiISwGQyYfLkyQwqGzGsiIgEUCqV2LBhA8aOHcugsoFCkiRJdBGtVVpaCo1Gg5KSEgQHB4suh4joqvR6PXx9fUWXIRu2vo9zZUVE5CQ6nQ7XXHMNdu/eLboUl8OwIiJygrpmitzcXCxatAgufFFLCIYVEZGDNez627x5s9X9AKlpDCsiIgdie7p9MKyIiByEQWU/DCsiIgd59913GVR2wvOsiIgcZPny5QgNDcXTTz/NoGojrqyIiOwoNzcXJpMJAODt7Y1XX32VQWUHDCsiIjvRarXo378/Zs2aZQ4ssg+GFRGRHWi1WqSkpKCoqAiZmZmorKwUXZJbYVgREbVR/aCqa6YIDAwUXZZbYVgREbWBtaDiPSr7Y1gRETWluhQwGZv8NoPKedi6TkTU0O8HgO/mAvlawL8jMPQJYOicRtNOnjyJy5cvM6icgEeEEBHVV10KLO0LVF+2HJ/0MXDdxEbTv//+ewwaNIhB1Uo8IoSIqDWO/KtxUAHAwS8AAIcOHUJubq55+NZbb2VQOQHDioioPqmJz0eZjNDpdBg+fDiSk5ORl5fn3Lo8HMOKiKi+a0cDPo3bznV+15s3pQ0JCUFQUJCA4jwXw4qIqD51e2DyOqBDzJWvfQKhi5iGEbP
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"tau_id = 0\n",
"pca = PCA(n_components)\n",
"X = pca.fit_transform(Z)\n",
"data = stim_hist['phase'][:, tau_id, :].T\n",
"data = pd.DataFrame(data)\n",
"\n",
"## Apply noise reduction\n",
"data = sts.zscore(data, axis=0)\n",
"data = PCA_reduction(data, 5)\n",
"# data = z_cutoff(data,2)\n",
"# data = density_filtration(data, 10, 0.9)\n",
"\n",
"## Analyze shape\n",
"persistence(data,homdim=2,coeff=2)\n",
"persistence(data,homdim=2,coeff=23)"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decoding... done\n"
]
}
],
"source": [
"decoding1 = cohomological_parameterization(data, coeff=23)\n"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x26c9e2ba580>"
]
},
"execution_count": 87,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(decoding1, stim_val['pair'][decoding1.index][:,1])"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"PC_values = np.arange(n_components)\n",
"plt.plot(PC_values, pca.explained_variance_ratio_, 'o-', linewidth=2, color='blue')\n",
"plt.title('Scree Plot')\n",
"plt.xticks(np.arange(20))\n",
"plt.xlabel('Principal Component')\n",
"plt.ylabel('Variance Explained')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "'c' argument has 20 elements, which is inconsistent with 'x' and 'y' with size 400.",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4221\u001b[0m, in \u001b[0;36mAxes._parse_scatter_color_args\u001b[1;34m(c, edgecolors, kwargs, xsize, get_next_color_func)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4219'>4220</a>\u001b[0m \u001b[39mtry\u001b[39;00m: \u001b[39m# Is 'c' acceptable as PathCollection facecolors?\u001b[39;00m\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4220'>4221</a>\u001b[0m colors \u001b[39m=\u001b[39m mcolors\u001b[39m.\u001b[39;49mto_rgba_array(c)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4221'>4222</a>\u001b[0m \u001b[39mexcept\u001b[39;00m (\u001b[39mTypeError\u001b[39;00m, \u001b[39mValueError\u001b[39;00m) \u001b[39mas\u001b[39;00m err:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:377\u001b[0m, in \u001b[0;36mto_rgba_array\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=375'>376</a>\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=376'>377</a>\u001b[0m rgba \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39marray([to_rgba(cc) \u001b[39mfor\u001b[39;00m cc \u001b[39min\u001b[39;00m c])\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=378'>379</a>\u001b[0m \u001b[39mif\u001b[39;00m alpha \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:377\u001b[0m, in \u001b[0;36m<listcomp>\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=375'>376</a>\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m--> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=376'>377</a>\u001b[0m rgba \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39marray([to_rgba(cc) \u001b[39mfor\u001b[39;00m cc \u001b[39min\u001b[39;00m c])\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=378'>379</a>\u001b[0m \u001b[39mif\u001b[39;00m alpha \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:187\u001b[0m, in \u001b[0;36mto_rgba\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=185'>186</a>\u001b[0m \u001b[39mif\u001b[39;00m rgba \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m: \u001b[39m# Suppress exception chaining of cache lookup failure.\u001b[39;00m\n\u001b[1;32m--> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=186'>187</a>\u001b[0m rgba \u001b[39m=\u001b[39m _to_rgba_no_colorcycle(c, alpha)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=187'>188</a>\u001b[0m \u001b[39mtry\u001b[39;00m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\colors.py:269\u001b[0m, in \u001b[0;36m_to_rgba_no_colorcycle\u001b[1;34m(c, alpha)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=267'>268</a>\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m np\u001b[39m.\u001b[39miterable(c):\n\u001b[1;32m--> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=268'>269</a>\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mInvalid RGBA argument: \u001b[39m\u001b[39m{\u001b[39;00morig_c\u001b[39m!r}\u001b[39;00m\u001b[39m\"\u001b[39m)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/colors.py?line=269'>270</a>\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mlen\u001b[39m(c) \u001b[39mnot\u001b[39;00m \u001b[39min\u001b[39;00m [\u001b[39m3\u001b[39m, \u001b[39m4\u001b[39m]:\n",
"\u001b[1;31mValueError\u001b[0m: Invalid RGBA argument: 0.0",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mc:\\Users\\arash\\Documents\\Uni\\Research Project (Topology)\\staticgrating-phasefreq-topology\\05_Dimensionality_Reduction.ipynb Cell 65'\u001b[0m in \u001b[0;36m<cell line: 8>\u001b[1;34m()\u001b[0m\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000057?line=5'>6</a>\u001b[0m ax \u001b[39m=\u001b[39m plt\u001b[39m.\u001b[39maxes(projection\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39m3d\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000057?line=6'>7</a>\u001b[0m x, y, z \u001b[39m=\u001b[39m X[:,\u001b[39m0\u001b[39m], X[:,\u001b[39m1\u001b[39m], X[:,\u001b[39m2\u001b[39m]\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000057?line=7'>8</a>\u001b[0m ax\u001b[39m.\u001b[39;49mscatter3D(x, y, z, c\u001b[39m=\u001b[39;49mstim_val[\u001b[39m'\u001b[39;49m\u001b[39morientation\u001b[39;49m\u001b[39m'\u001b[39;49m])\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000057?line=8'>9</a>\u001b[0m ax\u001b[39m.\u001b[39mset_title(\u001b[39m\"\u001b[39m\u001b[39m3D scatterplot\u001b[39m\u001b[39m\"\u001b[39m, pad\u001b[39m=\u001b[39m\u001b[39m25\u001b[39m, size\u001b[39m=\u001b[39m\u001b[39m15\u001b[39m)\n\u001b[0;32m <a href='vscode-notebook-cell:/c%3A/Users/arash/Documents/Uni/Research%20Project%20%28Topology%29/staticgrating-phasefreq-topology/05_Dimensionality_Reduction.ipynb#ch0000057?line=9'>10</a>\u001b[0m ax\u001b[39m.\u001b[39mset_xlabel(\u001b[39m\"\u001b[39m\u001b[39mX\u001b[39m\u001b[39m\"\u001b[39m) \n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\__init__.py:1412\u001b[0m, in \u001b[0;36m_preprocess_data.<locals>.inner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1408'>1409</a>\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(func)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1409'>1410</a>\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39minner\u001b[39m(ax, \u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1410'>1411</a>\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1411'>1412</a>\u001b[0m \u001b[39mreturn\u001b[39;00m func(ax, \u001b[39m*\u001b[39;49m\u001b[39mmap\u001b[39;49m(sanitize_sequence, args), \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1413'>1414</a>\u001b[0m bound \u001b[39m=\u001b[39m new_sig\u001b[39m.\u001b[39mbind(ax, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1414'>1415</a>\u001b[0m auto_label \u001b[39m=\u001b[39m (bound\u001b[39m.\u001b[39marguments\u001b[39m.\u001b[39mget(label_namer)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1415'>1416</a>\u001b[0m \u001b[39mor\u001b[39;00m bound\u001b[39m.\u001b[39mkwargs\u001b[39m.\u001b[39mget(label_namer))\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\mpl_toolkits\\mplot3d\\axes3d.py:2389\u001b[0m, in \u001b[0;36mAxes3D.scatter\u001b[1;34m(self, xs, ys, zs, zdir, s, c, depthshade, *args, **kwargs)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2385'>2386</a>\u001b[0m \u001b[39mif\u001b[39;00m np\u001b[39m.\u001b[39mmay_share_memory(zs_orig, zs): \u001b[39m# Avoid unnecessary copies.\u001b[39;00m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2386'>2387</a>\u001b[0m zs \u001b[39m=\u001b[39m zs\u001b[39m.\u001b[39mcopy()\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2388'>2389</a>\u001b[0m patches \u001b[39m=\u001b[39m \u001b[39msuper\u001b[39;49m()\u001b[39m.\u001b[39;49mscatter(xs, ys, s\u001b[39m=\u001b[39;49ms, c\u001b[39m=\u001b[39;49mc, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2389'>2390</a>\u001b[0m art3d\u001b[39m.\u001b[39mpatch_collection_2d_to_3d(patches, zs\u001b[39m=\u001b[39mzs, zdir\u001b[39m=\u001b[39mzdir,\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2390'>2391</a>\u001b[0m depthshade\u001b[39m=\u001b[39mdepthshade)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/mpl_toolkits/mplot3d/axes3d.py?line=2392'>2393</a>\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_zmargin \u001b[39m<\u001b[39m \u001b[39m0.05\u001b[39m \u001b[39mand\u001b[39;00m xs\u001b[39m.\u001b[39msize \u001b[39m>\u001b[39m \u001b[39m0\u001b[39m:\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\__init__.py:1412\u001b[0m, in \u001b[0;36m_preprocess_data.<locals>.inner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1408'>1409</a>\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(func)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1409'>1410</a>\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39minner\u001b[39m(ax, \u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1410'>1411</a>\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1411'>1412</a>\u001b[0m \u001b[39mreturn\u001b[39;00m func(ax, \u001b[39m*\u001b[39;49m\u001b[39mmap\u001b[39;49m(sanitize_sequence, args), \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1413'>1414</a>\u001b[0m bound \u001b[39m=\u001b[39m new_sig\u001b[39m.\u001b[39mbind(ax, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1414'>1415</a>\u001b[0m auto_label \u001b[39m=\u001b[39m (bound\u001b[39m.\u001b[39marguments\u001b[39m.\u001b[39mget(label_namer)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/__init__.py?line=1415'>1416</a>\u001b[0m \u001b[39mor\u001b[39;00m bound\u001b[39m.\u001b[39mkwargs\u001b[39m.\u001b[39mget(label_namer))\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4387\u001b[0m, in \u001b[0;36mAxes.scatter\u001b[1;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4383'>4384</a>\u001b[0m \u001b[39mif\u001b[39;00m edgecolors \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4384'>4385</a>\u001b[0m orig_edgecolor \u001b[39m=\u001b[39m kwargs\u001b[39m.\u001b[39mget(\u001b[39m'\u001b[39m\u001b[39medgecolor\u001b[39m\u001b[39m'\u001b[39m, \u001b[39mNone\u001b[39;00m)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4385'>4386</a>\u001b[0m c, colors, edgecolors \u001b[39m=\u001b[39m \\\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4386'>4387</a>\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_parse_scatter_color_args(\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4387'>4388</a>\u001b[0m c, edgecolors, kwargs, x\u001b[39m.\u001b[39;49msize,\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4388'>4389</a>\u001b[0m get_next_color_func\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_patches_for_fill\u001b[39m.\u001b[39;49mget_next_color)\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4390'>4391</a>\u001b[0m \u001b[39mif\u001b[39;00m plotnonfinite \u001b[39mand\u001b[39;00m colors \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4391'>4392</a>\u001b[0m c \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mma\u001b[39m.\u001b[39mmasked_invalid(c)\n",
"File \u001b[1;32mc:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\matplotlib\\axes\\_axes.py:4227\u001b[0m, in \u001b[0;36mAxes._parse_scatter_color_args\u001b[1;34m(c, edgecolors, kwargs, xsize, get_next_color_func)\u001b[0m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4224'>4225</a>\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4225'>4226</a>\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m valid_shape:\n\u001b[1;32m-> <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4226'>4227</a>\u001b[0m \u001b[39mraise\u001b[39;00m invalid_shape_exception(c\u001b[39m.\u001b[39msize, xsize) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4227'>4228</a>\u001b[0m \u001b[39m# Both the mapping *and* the RGBA conversion failed: pretty\u001b[39;00m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4228'>4229</a>\u001b[0m \u001b[39m# severe failure => one may appreciate a verbose feedback.\u001b[39;00m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4229'>4230</a>\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4230'>4231</a>\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\u001b[39mc\u001b[39m\u001b[39m'\u001b[39m\u001b[39m argument must be a color, a sequence of colors, \u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m <a href='file:///c%3A/Users/arash/AppData/Local/Programs/Python/Python38/lib/site-packages/matplotlib/axes/_axes.py?line=4231'>4232</a>\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mor a sequence of numbers, not \u001b[39m\u001b[39m{\u001b[39;00mc\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n",
"\u001b[1;31mValueError\u001b[0m: 'c' argument has 20 elements, which is inconsistent with 'x' and 'y' with size 400."
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "568117a3110647b09f77bf12d0da7e1e",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXCk+V0f/vfTl9Td6lP3fY3mnp2dSzPSQP1wMBhIuWJSVDlAYWOCKZIscdiigg0+cmFDnJiljMNWIFsUBQSnQg7AxBSss2Ub75p4R9267/scqQ8d3erzeX5/TD1fd7e6JbXUd79fVVvgmZGebrVG87z78/l+PpKiKAqIiIiIiIio6miK/QCIiIiIiIioOBgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqlK7YD4CIiKpLPB5HOByGoijQ6/XQarXQaDSQJKnYD42IiKjqSIqiKMV+EEREVPkURUEsFkMsFkMkEkE8HgcASJIErVYLrVYLnU4HnU7HgEhERFQgrBASEVHeybKMQCAAjUYj/lMDn6IoOD4+xjvvvIPv+Z7vgUajSQqHrCASERHlD88QEhFR3iiKgng8jkgkgm9+85s4PDxMCnaSJIkACECEP1mWEQ6HcXR0hMPDQxweHiIYDIrKIptbiIiIcoMVQiIiyovEFlEAIgju7e1hamoKBoMBDocDDocDtbW14uM0Gk3S51BDpXr2UA2R6vlDnU4HSZJYQSQiIroABkIiIso5WZYRjUYRj8dFgAOA1dVVPH/+HP39/QAAv9+P9fV1cZ5wdXUVTqcTFotFtIkmfnxiQIzFYuL3U1tMGRCJiIjOh4GQiIhyJjGsybIsQp3a7un3+/HkyRPU1NRAlmV0dHRAURTs7+/j2bNnODw8xNraGhRFgd1uh91uh8PhgMViESEvXUCMxWKIRqMZA2Ji1ZGIiIi+i4GQiIhyQlEUURUEIMLg9vY2xsfHodVqcfPmTdTV1SEajYqPkyQJdXV1AIAbN25Ap9Ph6OgIfr8fPp8PKysrAJAUEOvq6rIOiGqLKQMiERHRdzEQEhHRpcmyjEgkklQVjMfjmJqaws7ODu7cuYPZ2dlztXFKkgSLxQKLxYLOzk4oioLDw0MREJeWlqDRaEQ4tNvtMJvN5wqIwIugmlg9ZEAkIqJqxkBIREQXpraIRqNRKIoiwuDh4SHcbjd0Oh2Gh4dhNBoxNzeXcTpo4gqKdL9ntVphtVrR1dUFWZZxeHgIn8+H3d1dzM/PQ6vVigE1drsdJpPp1IAYjUYRiUQAMCASEVF1YyAkIqILSdciCrwYDDMzM4Oenh709/eLX5ck6UKBMJVGo4HNZoPNZkNPTw9kWcbBwQF8Ph92dnYwNzcHnU6XFBCNRmPGgKgOwFEriJIkJQVEdYopERFRJWIgJCKirKlVwcQW0Wg0ivHxcfj9fty/fx/19fVJH6MGwnQTQC8TuNT2Ubvdjt7eXsTjcREQt7a2MDMzk7TiInHNhXq+UJUYECORiHisakBMnGJKRERUCRgIiYjo3FJ3C6ph0Ofzwe12w2Kx4OnTpzAYDBk//qzPf1mJ7aPAi/C6v78Pn8+HjY0NTE9Po6amJikg1tTUADhfQNRoNCeG1DAgEhFRuWIgJCKic1GDkSzLAF6EQUVRsLCwgMXFRQwMDKC7uztjOMpVy2i2tFotnE4nnE4nACAWi4mAuLa2hsnJSZhMJtFe6nA4RKA9b0CUJAkGg4EVRCIiKjsMhEREdKrEEJTYIhoKhTA6OopQKITBwUHYbLZTP89pgVD9/ULQ6XSor68XLa3RaFQExJWVFUxMTMBsNicFRL1eLx6jGhDV5yLLMr71rW/h5s2bsFqtaYfUMCASEVGpYiAkIqKMMu0W3N3dxdjYGBoaGnD//n3odGf/c3KeUJSPCuFZ9Ho9Ghoa0NDQAOBFQPT5fPD7/VhaWsL4+Djq6upEQLTb7dDr9eL5qAFRDX/qCo5wOCwqiAyIRERUqhgIiYgoLbUqGI/HRRCUZRkzMzNYW1vDzZs30d7efu7Pl1ghTBeIzqogFoper0dTUxOampoAAJFIRATEhYUFBINBWCwWcf5QrYyqA2jSVRDD4fCpay4YEImIqFgYCImIKIm6WzAWiyW1iAYCAbjdbgDA8PAwzGZzVp83MfBl2jdYigwGA5qbm9Hc3AwACIfD8Pl88Pl8mJmZQTgcBgCsr6+jpaUFNpstKeSpoU/dgagoCsLhcFIFUR1Qo9PpxNebiIioEBgIiYhIyNQiurm5iYmJCXR0dODatWsXWtx+ngpgKVQIz1JTU4OWlha0tLQAAEKhEL797W8jGo1iamoKkUgEVqtVVBCtVqsIiIkhMTEghkIhAEgKiGoFkQGRiIjyiYGQiIgApN8tGIvFMDU1hefPn+Pu3buijfIizjNUphwCYara2lpotVr09vbCYrEgFAqJCuLm5iZisdiJgKh+fc8TENXKIQMiERHlAwMhEVGVy7Rb8ODgAG63GwaDAU+fPhXL3C97rUwqIeRIkgSj0Qij0Yi2tjYoioJgMAi/3w+fz4f19XXE43HYbDYREC0Wy6kBUZZlBkQiIsobBkIioiqWultQDRYrKyuYnZ1Fb28v+vv7cxI4KqVlNBuSJMFsNsNsNqO9vR2KoiAQCIiAuLq6CkVRxPRSNSCq4TBTQAyHwwiFQtBoNCeG1DAgEhFRNhgIiYiqUOJuQUVRRPiIRCIYHx/HwcEBHjx4IJa550KltoxmQ5Ik1NXVoa6uDh0dHVA
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXCk+V0f/vfTl9Td6lP3fY3mnp2dSzPSQP1wMBhIuWJSVDlAYWOCKZIscdiigg0+cmFDnJiljMNWIFsUBQSnQg7AxBSss2Ub75p4R9267/scqQ8d3erzeX5/TD1fd7e6JbXUd79fVVvgmZGebrVG87z78/l+PpKiKAqIiIiIiIio6miK/QCIiIiIiIioOBgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqFAMhERERERFRlWIgJCIiIiIiqlIMhERERERERFWKgZCIiIiIiKhKMRASERERERFVKQZCIiIiIiKiKsVASEREREREVKUYCImIiIiIiKoUAyEREREREVGVYiAkIiIiIiKqUgyEREREREREVYqBkIiIiIiIqEoxEBIREREREVUpBkIiIiIiIqIqxUBIRERERERUpRgIiYiIiIiIqhQDIRERERERUZViICQiIiIiIqpSDIRERERERERVioGQiIiIiIioSjEQEhERERERVSkGQiIiIiIioirFQEhERERERFSlGAiJiIiIiIiqlK7YD4CIiKpLPB5HOByGoijQ6/XQarXQaDSQJKnYD42IiKjqSIqiKMV+EEREVPkURUEsFkMsFkMkEkE8HgcASJIErVYLrVYLnU4HnU7HgEhERFQgrBASEVHeybKMQCAAjUYj/lMDn6IoOD4+xjvvvIPv+Z7vgUajSQqHrCASERHlD88QEhFR3iiKgng8jkgkgm9+85s4PDxMCnaSJIkACECEP1mWEQ6HcXR0hMPDQxweHiIYDIrKIptbiIiIcoMVQiIiyovEFlEAIgju7e1hamoKBoMBDocDDocDtbW14uM0Gk3S51BDpXr2UA2R6vlDnU4HSZJYQSQiIroABkIiIso5WZYRjUYRj8dFgAOA1dVVPH/+HP39/QAAv9+P9fV1cZ5wdXUVTqcTFotFtIkmfnxiQIzFYuL3U1tMGRCJiIjOh4GQiIhyJjGsybIsQp3a7un3+/HkyRPU1NRAlmV0dHRAURTs7+/j2bNnODw8xNraGhRFgd1uh91uh8PhgMViESEvXUCMxWKIRqMZA2Ji1ZGIiIi+i4GQiIhyQlEUURUEIMLg9vY2xsfHodVqcfPmTdTV1SEajYqPkyQJdXV1AIAbN25Ap9Ph6OgIfr8fPp8PKysrAJAUEOvq6rIOiGqLKQMiERHRdzEQEhHRpcmyjEgkklQVjMfjmJqaws7ODu7cuYPZ2dlztXFKkgSLxQKLxYLOzk4oioLDw0MREJeWlqDRaEQ4tNvtMJvN5wqIwIugmlg9ZEAkIqJqxkBIREQXpraIRqNRKIoiwuDh4SHcbjd0Oh2Gh4dhNBoxNzeXcTpo4gqKdL9ntVphtVrR1dUFWZZxeHgIn8+H3d1dzM/PQ6vVigE1drsdJpPp1IAYjUYRiUQAMCASEVF1YyAkIqILSdciCrwYDDMzM4Oenh709/eLX5ck6UKBMJVGo4HNZoPNZkNPTw9kWcbBwQF8Ph92dnYwNzcHnU6XFBCNRmPGgKgOwFEriJIkJQVEdYopERFRJWIgJCKirKlVwcQW0Wg0ivHxcfj9fty/fx/19fVJH6MGwnQTQC8TuNT2Ubvdjt7eXsTjcREQt7a2MDMzk7TiInHNhXq+UJUYECORiHisakBMnGJKRERUCRgIiYjo3FJ3C6ph0Ofzwe12w2Kx4OnTpzAYDBk//qzPf1mJ7aPAi/C6v78Pn8+HjY0NTE9Po6amJikg1tTUADhfQNRoNCeG1DAgEhFRuWIgJCKic1GDkSzLAF6EQUVRsLCwgMXFRQwMDKC7uztjOMpVy2i2tFotnE4nnE4nACAWi4mAuLa2hsnJSZhMJtFe6nA4RKA9b0CUJAkGg4EVRCIiKjsMhEREdKrEEJTYIhoKhTA6OopQKITBwUHYbLZTP89pgVD9/ULQ6XSor68XLa3RaFQExJWVFUxMTMBsNicFRL1eLx6jGhDV5yLLMr71rW/h5s2bsFqtaYfUMCASEVGpYiAkIqKMMu0W3N3dxdjYGBoaGnD//n3odGf/c3KeUJSPCuFZ9Ho9Ghoa0NDQAOBFQPT5fPD7/VhaWsL4+Djq6upEQLTb7dDr9eL5qAFRDX/qCo5wOCwqiAyIRERUqhgIiYgoLbUqGI/HRRCUZRkzMzNYW1vDzZs30d7efu7Pl1ghTBeIzqogFoper0dTUxOampoAAJFIRATEhYUFBINBWCwWcf5QrYyqA2jSVRDD4fCpay4YEImIqFgYCImIKIm6WzAWiyW1iAYCAbjdbgDA8PAwzGZzVp83MfBl2jdYigwGA5qbm9Hc3AwACIfD8Pl88Pl8mJmZQTgcBgCsr6+jpaUFNpstKeSpoU/dgagoCsLhcFIFUR1Qo9PpxNebiIioEBgIiYhIyNQiurm5iYmJCXR0dODatWsXWtx+ngpgKVQIz1JTU4OWlha0tLQAAEKhEL797W8jGo1iamoKkUgEVqtVVBCtVqsIiIkhMTEghkIhAEgKiGoFkQGRiIjyiYGQiIgApN8tGIvFMDU1hefPn+Pu3buijfIizjNUphwCYara2lpotVr09vbCYrEgFAqJCuLm5iZisdiJgKh+fc8TENXKIQMiERHlAwMhEVGVy7Rb8ODgAG63GwaDAU+fPhXL3C97rUwqIeRIkgSj0Qij0Yi2tjYoioJgMAi/3w+fz4f19XXE43HYbDYREC0Wy6kBUZZlBkQiIsobBkIioiqWultQDRYrKyuYnZ1Fb28v+vv7cxI4KqVlNBuSJMFsNsNsNqO9vR2KoiAQCIiAuLq6CkVRxPRSNSCq4TBTQAyHwwiFQtBoNCeG1DAgEhFRNhgIiYiqUOJuQUVRRPiIRCIYHx/HwcE
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits import mplot3d\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"%matplotlib widget\n",
"fig = plt.figure(figsize=(9, 6))\n",
"ax = plt.axes(projection='3d')\n",
"x, y, z = X[:,0], X[:,1], X[:,2]\n",
"ax.scatter3D(x, y, z, c=stim_val['orientation'])\n",
"ax.set_title(\"3D scatterplot\", pad=25, size=15)\n",
"ax.set_xlabel(\"X\") \n",
"ax.set_ylabel(\"Y\") \n",
"ax.set_zlabel(\"Z\")\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [],
"source": [
"# @title run a manifold embedding algorithm (UMAP) in two or three dimensions. \n",
"# !pip install umap-learn --quiet\n",
"from umap import UMAP\n",
"\n",
"cut_off_dim = 3\n",
"X_reduced = X[:,:cut_off_dim]\n",
"ncomp = cut_off_dim # try 2, then try 3\n",
"xinit = 3 * sts.zscore(X_reduced, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\arash\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\umap\\umap_.py:2344: UserWarning:\n",
"\n",
"n_neighbors is larger than the dataset size; truncating to X.shape[0] - 1\n",
"\n"
]
}
],
"source": [
"embed3d = UMAP(n_components=ncomp, init = xinit, n_neighbors = 25, \n",
" metric = 'correlation', transform_seed = 42).fit_transform(X_reduced)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 9 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.figure(figsize=(8,8))\n",
"for i in range(ncomp):\n",
" for j in range(ncomp):\n",
" ax = plt.subplot(ncomp,ncomp, j + ncomp*i + 1)\n",
" if i==j:\n",
" ax.plot(embed3d[:,i])\n",
" \n",
" # ax.set_xticks(np.arange(20)[::5])\n",
" # ax.set_xticklabels(stim_val['phase'][::5])\n",
" # ax.set_yticks(np.arange(20)[::5])\n",
" # ax.set_yticklabels(stim_val['orientation'][::5])\n",
" # ax.set_xlabel('phase')\n",
" # ax.set_ylabel('orientation')\n",
" else:\n",
" plt.scatter(embed3d[:,j], embed3d[:,i], s = 1, c=stim_val['orientation'], cmap = 'hot')\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.5 64-bit",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.5"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}