Skip to content

Instantly share code, notes, and snippets.

@mhhennig
Last active October 16, 2019 13:35
Show Gist options
  • Save mhhennig/2380cb6c4c6420b303616d55c971f049 to your computer and use it in GitHub Desktop.
Save mhhennig/2380cb6c4c6420b303616d55c971f049 to your computer and use it in GitHub Desktop.
ground truth comparison, MEArec simulated data
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ground Truth Comparison\n",
"\n",
"This notebook shows how [SpikeInterface](https://github.com/SpikeInterface) is used to perform a ground truth comparisong for multiple spike sorters.\n",
"\n",
"Note the notebook assumes the recording is alreay sorted, the neccessary data can be downloaded here:\n",
"\n",
"[https://drive.google.com/drive/folders/1ZwLDz0mmTyUYTbAJ2TX53XRa0l0zA-K-?usp=drive_open](https://drive.google.com/drive/folders/1ZwLDz0mmTyUYTbAJ2TX53XRa0l0zA-K-?usp=drive_open)\n",
"\n",
"The results were generated with spikeinterface version 0.9.1."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"\n",
"import os\n",
"import sys\n",
"import matplotlib.pyplot as plt\n",
"import spikeextractors as se\n",
"import spiketoolkit as st\n",
"import pandas as pd\n",
"import spikewidgets as sw\n",
"import spikesorters as ss\n",
"import spikecomparison as sc\n",
"import numpy as np\n",
"import scipy\n",
"import seaborn as sns\n",
"from pathlib import Path\n",
"import pickle\n",
"from spikecomparison import GroundTruthStudy\n",
"\n",
"import networkx as nx\n",
"\n",
"SMALL_SIZE = 12\n",
"MEDIUM_SIZE = 14\n",
"BIGGER_SIZE = 16\n",
"\n",
"plt.rc('font', size=SMALL_SIZE) # controls default text sizes\n",
"plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title\n",
"plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels\n",
"plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n",
"plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n",
"plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize\n",
"plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title\n",
"\n",
"%matplotlib inline\n",
"\n",
"def clear_axes(ax):\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# set the data path\n",
"p = Path('/data/MEA/spikeinterface/MEArec/')\n",
"study_folder = p / 'study_mearec_SqMEA1015um/'\n",
"\n",
"mearec_filename = p / 'recordings_50cells_SqMEA-10-15um_60.0_10.0uV_27-03-2019_13-31-005.h5'\n",
"gt_sorting0 = se.MEArecSortingExtractor(mearec_filename)\n",
"\n",
"# compute GT unit SNR\n",
"snr_file = study_folder / 'snr.pickle'\n",
"if os.path.isfile(snr_file):\n",
" snr = pd.read_pickle(snr_file)\n",
"else:\n",
" print('computing snr')\n",
" rec0 = se.MEArecRecordingExtractor(mearec_filename)\n",
" snr = st.validation.compute_snrs(gt_sorting0, rec0)\n",
" snr = pd.Series(snr, index=gt_sorting0.get_unit_ids())\n",
" snr.name = 'snr'\n",
" snr_file = study_folder / 'snr.pickle'\n",
" snr.to_pickle(snr_file)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/data/miniconda3/envs/spikeinterface/lib/python3.7/site-packages/pandas/core/indexing.py:205: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" self._setitem_with_indexer(indexer, value)\n"
]
},
{
"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>rec_name</th>\n",
" <th>sorter_name</th>\n",
" <th>gt_unit_id</th>\n",
" <th>accuracy</th>\n",
" <th>recall</th>\n",
" <th>precision</th>\n",
" <th>false_discovery_rate</th>\n",
" <th>miss_rate</th>\n",
" <th>snr</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>rec0</td>\n",
" <td>kilosort2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4.54862</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>rec0</td>\n",
" <td>kilosort2</td>\n",
" <td>1</td>\n",
" <td>0.989717</td>\n",
" <td>0.989717</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0102828</td>\n",
" <td>13.6905</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>rec0</td>\n",
" <td>kilosort2</td>\n",
" <td>2</td>\n",
" <td>0.997561</td>\n",
" <td>0.997561</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.00243902</td>\n",
" <td>6.62917</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>rec0</td>\n",
" <td>kilosort2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>10.8414</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>rec0</td>\n",
" <td>kilosort2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>19.3523</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rec_name sorter_name gt_unit_id accuracy recall precision \\\n",
"0 rec0 kilosort2 0 0 0 0 \n",
"1 rec0 kilosort2 1 0.989717 0.989717 1 \n",
"2 rec0 kilosort2 2 0.997561 0.997561 1 \n",
"3 rec0 kilosort2 3 1 1 1 \n",
"4 rec0 kilosort2 4 1 1 1 \n",
"\n",
" false_discovery_rate miss_rate snr \n",
"0 0 0 4.54862 \n",
"1 0 0.0102828 13.6905 \n",
"2 0 0.00243902 6.62917 \n",
"3 0 0 10.8414 \n",
"4 0 0 19.3523 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# run comparison and get all relevant data\n",
"study = GroundTruthStudy(study_folder)\n",
"sorter_list = ['herdingspikes', 'kilosort2', 'ironclust',\n",
" 'spykingcircus', 'tridesclous', 'mountainsort4']\n",
"sorter_names = ['HerdingSpikes', 'Kilosort2', 'Ironclust',\n",
" 'SpykingCircus', 'Tridesclous', 'Mountainsort4']\n",
"study.run_comparisons(exhaustive_gt=True, match_score=0.1, overmerged_score=0.2)\n",
"\n",
"comparisons = study.comparisons\n",
"dataframes = study.aggregate_dataframes()\n",
"\n",
"# add snr to the by-unit table\n",
"dataframes['perf_by_units']['snr'] = None\n",
"for i,s in enumerate(snr):\n",
" dataframes['perf_by_units']['snr'].loc[dataframes['perf_by_units'].gt_unit_id==i] = s\n",
"\n",
"dataframes['perf_by_units'][:5]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAACwCAYAAADT9K+uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAS8klEQVR4nO3deZhb1XnH8a+kmfGMbbzgZcxiYgz2AUyJKdjsS8O+NYUkBEieAmkhpGkhAQqEsiUQ0hDSkgIBmgYIgZa1PC0Q9p0CNouNn7AcIDyAwdjGxjbGnl3qH1c6cwa02b7SPTP6fZ6Hh9czV1evrs68OvfVXVK5XA4REQlLOukERETki1ScRUQCpOIsIhIgFWcRkQCpOIuIBEjFWUQkQE1xrGTW7Fm5SZu2RytMx7JKaWBv2rcA2Gr6VAAWL1rM3DkvpJLIZeasmbkxE0cDMHbY2CRSkCGkMLanm2kALPpwEXPmzC06tmOppJM2beeaW64EYHxrexyrlAZ24FcOBuC3//XvAPzNsScnlsuYiaM56YoTAPja1G8mlocMDYWx/Z+33wLAcUd/q+SysRTnpnSTK8r//c7t7udHTT06jtVLgxrZNAqATCqTWA5jh411Rfmud25zP1ehlg3Rl+sDoNw5gOo5i4gESMVZRCRAsX9757cybn37Zhcfs/W3434qkbryWxnvf/aOi7cYOTWJdGQQKxw4kSrzNbdmziIiAVJxFhEJUE0PSvZbGdoNlHWVKrfPlzB/DL++YoGLtx27QxLpyBCkmbOISIBUnEVEAlS3c621GyhDlT+G31r1mounjd4uiXRkEHAnoZRZRjNnEZEAqTiLiAQokUvI+buBanHIUOK3MuYtm+viHcfPTiIdCVThejHljkfSzFlEJEAqziIiAUr8yvh+K2P+8hdcPHPcrCTSEYmN38p4dvGTLt590j5JpCMByZW7VmieZs4iIgFScRYRCVDibQ2f38rQbqBUs+s3WPhj+PklT7t41/a9kkhHEpbLn36ik1BERAYZFWcRkQAF1dbw+buBzy15ysW7te+dRDoisfFbGS8vm+PiPx+/SxLpSAK6s11A+dadZs4iIgFScRYRCVCwbQ2f38r4aO1CF28yfHIS6UidLO74AICebE/CmdSO38r4zWvXufik7b6bRDpSJ62ZNgDSZe72o5mziEiAVJxFRAI0KNoaPr+Vod3Aoa3wXjenmxPOpD78MfzHT+a5ePuNd0wiHamhFV3LAOjN9pZcRjNnEZEAqTiLiARo0LU1fP5u4P3v3+PiQ7Y4Iol0RGLjtzKWdHzo4va2zZJIR2KWK3tVjYhmziIiAVJxFhEJ0KBua/j8Vsbcpc+6ePbE3ZNIR2LQk+0GhtalQ9eH38p4cOG9Lj5o8uFJpCMxGNsyHoCmdOkSrJmziEiAVJxFRAI0ZNoaPr+VoUsyDl7pVCYKylx/oNH4rYwnFz3i4n023T+JdGQ9paoY05o5i4gESMVZRCRAQ7Kt4fNbGfOXv+Bi/2ayEqZ0fu6gpkZxfivj1RXzXTxj7Mwk0pF10NXXCUBWd0IRERlcVJxFRAI05NsaPr+VoW+6w1fNN9oS8VsZryx/0cVfHrdzEulIBc3pFqD8GNfMWUQkQCrOIiIBaqi2hs9vZcxZ+oyLd5m4ZxLpSBHZXBagiosris9vZTz10aMu3nuT/ZJIR4pI5Y9BKte408xZRCRAKs4iIgFq2LaGz29lXPriP7v43J3PSSIdyatm10/K81sZzy5+0sW7T9oniXRkHWjmLCISIBVnEZEAqa3xOX4r45nFT7h4z0n71j+ZBqeTUOLltzJ+/tJlLj57p7OSSKehFW7wWu5IJM2cRUQCVHHmbIzZDMgAWGvfr3lGIiJSvjgbY24HVgG9RDPwv6tHUqHwWxm6aWz9VXNZRVk/fitj3rK5Lt5x/Owk0mk4fbneKCgztivNnJdba78XX0oiIlKNksXZGHM28GfGmEuBlQDW2stKLS8iIvEpN3N+HpgPdOb/Pbr26YTLb2W8teo1F08bvV0S6TSETCoanimdhlJTfivjuSVPuXi39r2TSEfyih6tYYyZCEwCTgLa8/H365iXiEhDKzVzXgkMAzqA1vzPflqXjEREpHhxttZ2AzcZY/z9ySnAU8WWbzR+K8Ou/KOLzZjtk0hnyGpK59sa6mrUjd/KeHf12y6estHWSaQzZFVzOdxKJ6F0Al3ASODgeNISEZFKyh5KZ629rRAbY2bUPh0REYHKJ6HcTzTzTgM6O7AIv5WhO6rEq7uvC4CcTkJJhN/KeHPVqy6ePlrztA3Vkh4GQLpMz67SSSjXW2vviDEnERGpQqXivL8xZj7RKdxYa5fWPiUREalUnFuAc/NxDvhObdMZ3PxWhq7FseGa0s1RoMM1Eue3Mp5f8rSLd23fK4l0Br2eXA9QvmVXqTg/aK29FcAYc0ZsmYmISFlFi7MxZjJwHTDNGPPX+R+/U7esREQaXKmTUBYChxpjplprVZTXg9/KeGLRwy7ed9MDkkhnUCocqF/2SH2pO7+V8dLHz7t4pwm7JpHOoJRJZaKgTMuu7EkoKswiIsnQbapERAJU7nrO9xNdJnQtkAVarLX71imvIcVvZajFUb3Crp8O1giX38rQ2K6eO0qjTMuu5MzZWnsIMAc4ADgImBdnciIiUlqlQ+kmAiOIivjGtU9HRESgcnH+BXAtUVtDt6iKgb+799DC+1x84OTDkkgnaFkqX1ZRwuGP7WcWP+Fi/0bJUr1KXwg2Axb4E3BU7dMRERGoPHM+Hfg10F2HXEREJK9ScV5grX26wjKynvxWRmdfh4tbM21JpBOcP336BgBdfZ0VlpTQ+K2MRz54wMX7b657dlSrUnE+zBhzMNHhdDlr7aF1yElEpOFVuhOKrhgvIpKAau+EMh7IWGt3qktWDchvZaztXePi4U0jkkgnCIXXnk7pRNbBzG9lvLpivotnjJ2ZRDpBKByJVO5YpEoz50MKsTHminjSEhGRSirNnI/Ohy3ANrVPR0REoPIXgm1E8+5e4OTapyMwsJXRyHedmNS2OQDNqZaEM5G4+K2MecvmunjH8bOTSCcxuVzlE6wqFecPgTO8WHfgFhGpg0rftBwPHJH/77japyMiIlB55txjre0FMMbowo0J8FsZb6561cX+DTeHqqZ0NDx1ydChyW9lvLXqNRdPG71dEunUVUt6GADpMoO7UnF+zBjzIFFr5ObYMhMRkbIqFectrLUH1SUTERFxKhXn3YwxJwMrAay1t9c+JSnFb2W8vep1F289etsk0qm53mwP4N01QoYsv5XREGM7V3lsVyrOdxK1NFpjy0pERCoqebSGMWYC8DKwFbAv8GqpZUVEJF7lZs6XAxcCWwLnE90J5Zv1SEoq83f3lnR86OL2ts2SSKcmMqnC0Ro6XKOR+GN7acciF09s2zSJdGqiMLbLHYpU7jjnLmvtu8Db1tr3iM4SFBGROihXnFsArLU/yf97WO3TERERKN/WWGiM+S7wIPCXRPcSlAD5rYyhdL2Car7RlqHNb2X8/KX+e0yfvdNZSaQTm1/O+1cAlqxdUnKZkjNna+35RPcOPJvoTijnxZueiIiUUul6zjcAN9QpFxERyat0nLMMMn4r47znLnLxJbtd9MWFA3f969cDsKxzWcKZSAj8VkbbwdNd3PHAm0mks0FOn3kaAC+1vVRyGd3/R0QkQCrOIiIBUltjCPNbGYNxN/BvtzsJgMfbnko4EwmNP4ZH/eMeLv70F/+XRDrrLJ3KAOUvh6uZs4hIgFScRUQCpLZGg/B3Azc6c3cXr7782STSqUqmsOuXcB4SNr+VMemCr7h48U8eSyKdqnRnuwDIljnBSjNnEZEAqTiLiARIbY0G5LcydvjVkS5ecNrdSaRT0vLOpQD0ZnVBRKmO38q45IWfufi8WT9KIp2SjrnvDAA+WLWw5DKaOYuIBEjFWUQkQGprNDi/lfGNe//BxXccfmUS6Qxw1YLfALC0Q9fWkHXntzJGnLGri9f88vkk0hngriOiv6/jfv/tksto5iwiEiAVZxGRAKmtIY7fyhh++i4uXvsvc5JIhwtmnQvAGyN043fZMH4rI4S7BV0452IAFn32UcllNHMWEQmQirOISIDU1pCi/FbGoXef4uI/HHlt3XJY0R0dpaGTUCROfivjvvf+x8WHfemrdcthr812BuDllrkll9HMWUQkQCrOIiIBUltDKvJbGR+sedfFm4+YUtPn/dW8awBYuvbjmj6PNC6/lbHN5Ue4+I0z76np8+4xaW8Aftv8+5LLaOYsIhIgFWcRkQCprSHrxG9lbHJh/10nPvpx/HeduGB2dBKKHfFG7OsW+Ty/lTF/+QsunjluVuzP9c7qtwDo6ussuYxmziIiAVJxFhEJkNoast78Vsbv3rjexcdv851Y1t/RtxaALNlY1idSrVq0MnzN6WYAUqnSty/WzFlEJEAqziIiAVJbQ2IRVyvD9+iHDwOwuvvT2NctkqSP83f36Slz3RjNnEVEAqTiLCISILU1JFiThrcD0JzWMJXGo5mziEiAVJxFRAKk/UUJVndfDwBZcglnIhKvscPGANCUypRcRjNnEZEAqTiLiARIbQ0RkTprybQAkEqVnh9r5iwiEiAVZxGRAKmtIcFqHz4R6L+8oshQ0dHbAUA2V/pyuJo5i4gESMVZRCRAamtIsKrZ9RMZjNb0rAHU1hARGXRSudyGnxo7Y8aM3Ljx42JIRwQWvLIAgKkztgRgwrgJPPi/D5W+2VoNaWxLnApje8q2WwAwYfxEHr7nkaJjO7a2Ri5/E86UNxnPeddESLGuf1vFPzT86yykS078/cemqvh55Rz8m4z6r9F/XX25/rsaZFL+pi3+vL25Hhc3DVi+f5muvg4XD8u0ubgn2+3i5nRL0XVmvPP2q3lfBubTf4REqdeVzfW5OO0dTD9wW/nbp395P7ferJ9zk8tvZNNGAAxvGk6S+rdX8THpb9tS29B/rL+WnLdbO2Abej/v9t7r1kxr/zLedvYnWf62rW7E9/+m1Hvqj5m+Acv4Y6yfn3+mxPUjSo2HAdvH324D1tlUdBlfp/e305bpH0MLPrYu3mHCdO8R/a/AX+ebK95x8RajNnHxwL/Zfpl08debIuXWO6olurbGyOaRRZeFmIrztOlbc/PtN0Ur9A576vNuwZJZx2vylprRd2e7XDzMG6i+bBUDPl3mzJxiOXRlO13sF0N/UH3W0387pZHNo4qux7/b7qruT1w8qnls0WXe/8wbGCOnunhZ52IXj2+d5K1zhYv9AdmSGebiXu99afLel5VePmNaNnbx6p5VLt6oebSL1/Z+5uJW77n898j/AF3Tu9rFI7zts7JrmYtHNY/h8AO+CsBDjz0AwLHfOI6kTJs+zY3tXIkPHX/Mr/Bey9hh413sjz0/7vUKb4s3nrv6+sfb0s6PXDx5xJYu9rez/wE3Iv+hBp8vpMXHvP/ztb1rXNzqTQb8or1mwPvev4x/tltX79r+fLz32t9u/ngY3tRfpPzt408M/G1SKG4wsM7g/e28u/ptF281yrj4wDtOcvEDX7/Oxf528Nd50qPnuPifdul/7OiW/r8F/wN6RHP/9velSXPYAUcA1Y1t9ZxFRAIUS8/ZGPMx8N6GpyNS1JestROSeGKNbamxkmM7luIsIiLxUltDRCRAKs6DhDFmI2PMmMpLishQoOK8AYwx+xpjzqm8ZNl1PFDloqcD22zIc0ljM8acYIw5xvv3jcaYSeUek19uijHmWmPMIcaY/WLK5RBjzH7V5tCIdPp2DIwxTwIvA38ATgC6gUeBD4CzgWeALwPHAqcBWwCTgVPzj58CnGOtPSVf7J8HZgDTgE2A84H9gPb870Tisq8xZndgJHA3MA74OtE4WwTMBpqBHqLx12mMuRFYCIwG3gB+B1wHfJJf/gfAIfl1TgZOAW4i+htpAR4qrCufQ6sx5mbg34BRwJFABngReBy4CFgDLLDW/romWyFAmjnH4zlr7Q+JBuXx1toTgRPzv3vRWvtT4DNgc2BXa+0PiApzX9G1RabkH3MD8CHwGNEAF9kQ38vPVm8E9gQuBdYCS4ED88vca629BPiatfYU4PIi67mRaLz/FdGk4w5r7anAK/nfTwGWA9cQjeM0cDFwLvD3n1vXnfnHzwV+BKwGVgJ/AWxMVLAfBx7egNc96GjmHI+V+f+n+eJpZIWj+ruJBlnhKPlRRDMSgF4vLpwrfCfRID0R2LrIekXWxzXW2lshamsQFehziWa5hwHD6B/PhTHXyxetsdZmjTHZ/GMKyxYmHNcSjflTgRFE4z6d///nr/ZzIfB9Y8y9RDXpEqCDaC90KVHB3h64CjhoPV7zoKTiHK8rgOuNMauB/yjy+9XAfGPMlUTtilPzP18EbGyMuQqYCtwH7EbUCskAdwFbAWcBR9X0FUijuRi4GWgFriZqQxTcZoy5mmgMlnMLcLUxZm9gD6LC/C2itkeGqPXRDFxG9CFwOQO/P3kJuBU4h2gmfyPRB8I9QBvwM+Bd4Nn1e4mDk45zFpENYoyZCpxJ1L5oBX5ore373DIPWGsPTiK/wUrFWUQkQPpCUEQkQCrOIiIBUnEWEQmQirOISIBUnEVEAqTiLCISoP8HmcrMSTx66KAAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x216 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# confusion matrices\n",
"\n",
"plt.figure(figsize=(6,3))\n",
"comp = comparisons['rec0','ironclust']\n",
"ax=plt.subplot(121)\n",
"sw.plot_confusion_matrix(comp, ax=ax, count_text=False, unit_ticks=False)\n",
"ax.set_xticks(())\n",
"ax.set_yticks(())\n",
"ax.set_xlabel('Ironclust',rotation=0, fontsize=8)\n",
"ax.set_ylabel('Ground truth',rotation=90, fontsize=8)\n",
"comp = comparisons['rec0','herdingspikes']\n",
"ax=plt.subplot(122)\n",
"sw.plot_confusion_matrix(comp, ax=ax, count_text=False, unit_ticks=False)\n",
"ax.set_xlabel('Herdingspikes',rotation=0, fontsize=8)\n",
"ax.set_ylabel('',rotation=0, fontsize=8)\n",
"ax.set_xticks(())\n",
"ax.set_yticks(())"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 216x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"run_times = dataframes['run_times']\n",
"perf_units = dataframes['perf_by_units']\n",
"count_units = dataframes['count_units']\n",
"\n",
"exclude_sorters = []\n",
"\n",
"if len(exclude_sorters) > 0:\n",
" for name in exclude_sorters:\n",
" run_times = run_times[run_times['sorter_name'] != name]\n",
" perf_units = perf_units[perf_units['sorter_name'] != name]\n",
" perf_avg = perf_avg[perf_avg['sorter_name'] != name]\n",
" count_units = count_units[count_units['sorter_name'] != name]\n",
"\n",
"# Use proper names for labels\n",
"sorter_order = run_times['sorter_name']\n",
"sorters = run_times['sorter_name'].copy()\n",
"for i in range(len(sorters)):\n",
" sorters.loc[sorters==sorter_list[i]] = sorter_names[i]\n",
" \n",
"fig = plt.figure(figsize=(3,3))\n",
"sns.set_palette(sns.color_palette(\"Set1\"))#\n",
"\n",
"ax = plt.subplot(111)\n",
"p = sns.barplot(data=run_times, x='sorter_name', y='run_time', ax=ax, order=sorter_order)\n",
"# p = sns.catplot(data=dataframes['run_times'], x='sorter_name', y='run_time', ax=ax, order=sorters, kind='bar')\n",
"# p.fig.get_axes()[0].set_yscale('log')\n",
"p.set_yscale('log')\n",
"plt.ylabel('Run time (s)');\n",
"plt.xlabel(None);\n",
"# p.set_xticklabels(sorters, rotation=90, ha='center')\n",
"ax.set_xticklabels(sorters, rotation=40, ha='right')\n",
"\n",
"clear_axes(ax)\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(12,4))\n",
"fig.tight_layout()\n",
"\n",
"ax = plt.subplot(111)\n",
"sns.set_palette(sns.color_palette(\"Set1\"))#\n",
"df = pd.melt(dataframes['perf_by_units'], id_vars='sorter_name', var_name='metric', value_name='score', \n",
" value_vars=('accuracy','precision', 'recall'))\n",
"# df.assign(Generation=df.metric.map({'metric':'Metric','accuracy': 'Accuracy', 'precision': 'Precision', 'recall': 'Recall'}))\n",
"p = sns.catplot(data=df, x='sorter_name', y='score', hue='metric', kind='swarm', dodge=True, ax=ax, \n",
" order=sorter_order, legend_out=True, s=4)\n",
"plt.close(p.fig)\n",
"ax.legend(['Accuracy', 'Precision', 'Recall'], labelspacing=0.2,\n",
" bbox_to_anchor=(1, 0.5), loc=2, borderaxespad=0., frameon=False)\n",
"ax.set_xticklabels(sorters, rotation=30, ha='center')\n",
"ax.set_xlabel(None);\n",
"ax.set_ylabel('Score');\n",
"clear_axes(ax)\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAa8AAADoCAYAAABYQWthAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dd5hdVfWG32RS6CDSOwh89C6g0nuHoHR+EJohqCC9SAfpiIjSu1QRkBoLSAelqHQ+pfem9Joyvz/WvsnNMMlMyC1zM+t9nvtkzrmnrDu5c9Zea6/17T7t7e0kSZIkSSvRt9kGJEmSJMmEks4rSZIkaTnSeSVJkiQtRzqvJEmSpOVI55UkSZK0HOm8kiRJkpZjkndeu+yySzuQr3zlK1+1fiVNZJJ3Xu+9916zTUiSJElqzCTvvJIkSZJJj3ReSZIkScvRr9kGjAtJiwNnANMCI4Ehth+RdDCwI2H7ZcBRtjP/nCRJ0ovokZGXpCmAPwMn2V4aOAa4XNIGwJbAssBiwOrAFk0zNEmSJGkKPdJ5AesAz9m+tWzfSDitQcAVtj+x/TlwEbB9k2xMkiRJmkRPTRsuCLwp6QJgSeB94ABgTuD2quNeBeZovHlJkiRJM+mpkVd/YAPgXNvLEXNftwIDGbu/og8xH5ZU0T5ieE2OSZIk6an01MjrdeBp238HsH2DpPOBUcBsVcfNRkRfSRV9+vXn7bMOGO8xMw09qUHWJEmS1J6eGnkNA+aVtCyApFWIiOuXwHaSppQ0EBgM/KFpViZJkiRNoUc6L9tvApsBZ0p6AjgN2Nz2TcB1wIPAE8AjwKVNMzRJkiRpCj01bYjtu4EVOtl/HHBc4y1KkiRJego9MvJKkqQxdLdwp1ULfIaPrGs9V/vwkSPerOcNknHTYyOvJEnqT3eKe6B1C3z6t7Wx77D6zSycuv4OM3fnOEl/BIbZPr1sLwgYON72IWXfTMArwEy2PxjHdeYBnrA9laQjgRls/7iLe/8aeNf2kV0cdx5wtu1HuvOZOjn/cOBR2zdM4HkfA4vZfnFCzsvIK0mSpP4MIxSBKmwM3ARsWrVvDeC+cTmuBrA20X70dVmDaHNqCBl5JUmS1J9hwBGS+toeRTivQ4CrJH3L9nPAmsAtAJJmB34NzEU4hKvKfH+XSJoGOJ8QeHgDGAHcO77rSvo50Xp0uaQdgGeA04HFy3G3A/vbHiFpBeBXwJTAl8B+wMLAcsDJkkaWz3EisCrQBvwT2NP2h5JWJnp324GH+JpBVEZeSZIkdcb2v4H3gCUkfQMQ8DdCfGGTctho5wX8FrjQ9rLA8sBakrbs5u2OAj4DFiK0X1X1XqfXtf0zor92u9JfexrwSDluaWAGYB9J/Yn2pKNtLwbsRji5s4CHCQd3PXAQ4TSXtb1kufYJkgYA1wD7Ft3aO4DJu/m5xiIjryRJksYwDFgNeBv4i+1Rkm4GfiTpeqDd9jOSpiQiluklHVPOnQpYimgT6oq1gJ+W1TbeKdemi+v+rsM1NgKWl7RL2a44mMWBkbZvASjzY4uX63c8fzpg7bJ/QPnciwPDbd9ezr9S0jnd+ExfIZ1XkiRJYxgG7AJ8zhhxhduJFN9ajIm62oi5p+/a/hRA0gzlvBm6ea/quasR3bhuR9qALWw/XY6bjkjzzc3YEn1IWoxIM3Y8fy/bw8oxUwGTlfM7zquN4GuQacMkSZLGcAcR5awK/AnA9meE2MKPKc7L9odESnEfGO047mPs4o7xMQzYRVLfkqLctJvXHcGYgos/AXtL6lPUjG4sNhpol7R2ucYywF8JX9Lx/B9LGiCpL3AecDzwGNCnLG+FpE2Ab3Tzc41FRl5JkkyyDB85klPX36GO1x/xVv+27j1GbX8q6T9A/w4VhbcAJwN3Vu3bFvi1pMeJlNuVti8vpfJdcSRwNhENvQ083tV1y3vXAZdJGgrsScxlPU44pNuI9RWHS9oc+KWkk4mCjc1tfynpRuD4Mq91DHAKUajRBvyLmOcaLmkz4GxJx5X9b3fjM32FPu3tk/YixJtvvnn7dddd12wzGk4K8ybdZVLu86ozE1NWnkwkmTZMkiRJWo50XkmSJEnLkc4rSZIkaTmyYCNJkkmW9hHD6dOvbopF7e0jhr/Vp1//WbpzsKR2YimnarXgh23vOp5zBgM/sL3RRFlaY0qV4Fq295S0IbCC7cOr99fbhnReSZJMsnRXePjrMtPQk7olzFvF6rbfrYsxDcT2jUT5PMC3gek72V9X0nklSZI0GUk7A0OI8vXpgRNsn9XhmM2BQ4FRRPS2v+27JU3LOHQIO5x/MSEbtRQwE/BnQm9weNEbPBmYgih/P9T2HyXNQiz4W2mOvsX2YZWIkCiJ3x1ok/QB8J+yfx/gfmC2UkbfBrxMNGO/3h17uyLnvJIkSRrHHZL+VfWaqahP7AZsUPT+tgI66004GdjD9nLAYYTUFIxDh3Ac91+BUI9fpLyGSPom8HtCEWMJYEei32veYtfztpcBVgYWKM4SgKKDeDZwddFHrOz/N/AkY3Qb1wFeKIodE2LvOMnIK0mSpHF0mjaUtBGwoaQFiMhoqk7OvQq4XtItwF8Y4+DGpUPYGRfb/rjc81JgM+B54NniiLD9pKT7COf4R+BWSXMRjcoH2f6gg47huDgfGEw4xp0IlY0JtXecZOSVJEnSRCTNQShNzE0sXXJoZ8eVyGYlQr19MHB3eauiQ7iU7aWI6GpcC1RWp+b6EunHNjroFZb3+tt+CJgXOBeYB3hQ0rLd/GjXACtIWpiQxLrma9g7TtJ5JUmSNJflgHeAY4l5qI0AyjwR5ed+kl4EprB9NrAHsbzKQMatQ9gZW0kaKGkyIj14E/AAsJCk5cu9FgVWAe6UdAJwmO0/AHsRqcDFOlyzWtNwNLY/J6LFi4FrK2LAE2jvOEnnlSRJ0lz+DLxKiN4+TSwU+Q4wf+WAUszwU+AKSf8gopidbX9B6BBOSegQPlb+HZee16fAPeWYe4CLShpzC+CMonl4BbBTmbf6JbCUpCeIiO8FwiFV81dgXUlndHK/84h1w86v2jch9o6TmmsbljVjDiEqVP4NXEBMQD5MLHT2ak1v2AWpbdg5qVWXVJiUtQ3r3OfFhPR5NZtSbfiE7VOabUstqEfkdQYwiBCt3ArYGvgh8F/gN3W4X5IkSafU03EBfVrFcU2K1KPacFOiw/qZslrnrUXK/2Ei+kqSJEkajO3BzbahltQj8uoHfCipP1HbP6zsnxz4og73S5IkSXoZ9Yi87gNOBT4gusX/IGkp4NdEn0CSJEmSTBT1cF4/JOa2lgS2sv1fST8F3uRrlEMmSZJ8XUaMHEW/troVVbePGDHyrX792r6OMG87IcX0ITDU9gRNqZTqvx/bvnPCTK7P9STtCgywfWYt7OkO9XBe8xEqyMMrO4oW1kBgPeCGOtwzSZLkK/Rr68uZl91bt+vvsf1KEyXMK2k/osjtOzU1rPGsRDjmhlEz5yWpL1FheAcwu6S3OxyyONEf8LWkQJIkSSYlJPUjerr+V7XvZ8D3iXqEFwktw9clLQJcSERrzxB9Ukiahyh/n6rjdhHPHUQI+S5A9HjtaPvpcV2vXOMQovBu8rJ/P9vXSzqSUNmYlVADeQ3YHliR0DBcW9JnthtSVV6TeFrSEKLL+kvCgb0GDO/w+jtwZy3ulyRJ0qLcIekxSa8TfbAQun9I2oEY5C9fZJNuZUxz7+XAeUU493TCeXSHVYGf2F6MeAYfNL7rSZqbUH5frbz3M+DoquutTEg7LQR8Auxu+3pCJeO0RjkuqJHzsn0OIeK4Ztn1A2CNqtfqxJovm3R2fpIkSS9h9eIUNiKinjtsV7JUGxFRzMOS/gX8BFBRfV+CEH7A9n10P0X3SJUwxD+A6cd3PdsvATsA2xVpqN0ZWyT4Ttsflp//SVnHqxnULG1o+26AIqP/su3aSnckSZJMItj+h6S9gYsl/dP2i4Rg7YmVdbxKncA3qk7rU/VzRWC3vcP+AR1u9VnVzx2P/cr1JC1D1CWcRshW3QVUrys2vus1lFqlDS+VNHXZPAa4pOz7yqsW90uSJGl1bF8JPEg4CgjB2l0lTVO2jwZ+a/u/wCPArjDawSxejnkfGFDmsAC26cZ9x3e9VYCHbf+CcFybEU61KzoV560ntaohHdnh5/G9kiRJkuDHwAaS1iXmt24G/ibpSSK1N7gctw2wdRHOPYwQ8MX2B8ABwDBJDzF2ZDQ+Or0ecCUwg6SngaeAj4lU49SdX2Y0w4DdJR3czftPNDUX5u1ppDBv57Sq0GpSeyZlYd4693kxIX1eSW2py0rKZRTxbSKMrM6Jtts+oh73TJIk6Ug9HRfQp1+/7mTUknpQc+cl6TSiSuZRonu8mkk7zEuSJEkaQj0ir62A3WxfVIdrJ0mSJEndVOXvq8N1kyRJJohRI0bV8/Lto0aMfLOeN0jGTT0irzOAIyX90PbHdbh+kiTdYPjIkfRv691zMn379eXZs+6q2/XnH7rqhGobIml3YChRE9BONA//zPbLNTavxyBpBuAd2zXrC6uH81oHWB7YUtK7hGTUaGzPVYd7JknSgf5tbew7bPytlaeuv0ODrEkAJJ1CrLixke1Xiibs9sADklaoUsNIuqAezut8xuhxJUmSJICkOQi5pTltvwdgexRwqaRlgb9IGmF78XL8dMALxEodUxBrIs5FRGxX2T6uCPHeQ/RpzQPsSOgW/gVYlnjGHw4MARYiVrPfxvYoSd8FTiTEd0cCR9m+uQj67lL2f0BoHZ5MyPt9QGgkLmJ7NUnTEtqIixe7bgf2tz1C0ubAzwlB4Idq+9usg/OyfUmtr5kkSTIJsALwdMVxdeA2Qh92GknLlfW9tgFusf2epGsJ4dubJE0G3CrpWUKhYw5gW9v3FGc2bzlviKSzCOeyJJEFex5YsTQhXwSsa/tFSbMBf5f0WLFnUWAe2x8W4fVlgcUIhfqbquw+jdBPHCypDbgY2EfSJYRq/XdtP1WP5uV6lMrfw3hK4m2vMgHX2oyQR5m6bB9MjCz6AZcRI4Usv0+SpFUYl4TSQOK5eSGhqvEwoTa/v6QpCXX46SUdU46fCliKcF4jgAeqrjWcMQ7mOeD+iphuUbOfnlg/bFZipfvKee2EqgfAY1UCvBsAl9r+vFzjHGDP8t5GwPKSdinblSWvVgIet/1U2T4HOG6cv5WvQT3Shrd1co/5gA0ZW1p/vEhaADiF0uQsaQNgS2IEMJLQAXsK+N3Em5wkSVJ3/gYsIGkW2x2rFFcH7iec1z8knQ9MZ/uuonXYh4hiPoXRBRCfAzMAX9geUXWtLzsM6ofzVdqIKHCFyo4Sfb0DbEfIQlUYwdhiE9Uyf23EEilPl2tMRzjBtehcSLhm1LxU3vZRHV6H2d6OaFxes6vzASRNQURW+1TtHgRcYfuTMgK4iJjoTJIk6fHYfg34FXClpNkr+yXtRCxAeWI55kEiUjm/nPch4fj2KcdPR7QjbToR5lQc6SrlmksB/wFm7+TYW4DtJQ0sC2gOZkx27U/A3pL6FBX8Gwm9xruBRSUtWY4bPBG2dkpdtVM6cC8xuugO55TXY1X75gReqdp+lcj1JkmStAS2DyYG5jdIekLSf4go5TtlLS2A84Clger6gW2JuarHiYKJK21fPhF2vEM4zJMlPQr8Fvi/sjRLRy4u9/wnER1+SRRhQKQPpwQeJ57XjwMnletvC1wu6R/EPFxNqcec13yd7J4GOIRY1rqr8/cARti+sEw+VujL2HNpfUiV+iRJxsOoEaOYf+iqdbz+yLf6TqC+oe0LgAvG8/6NdFiXqziVjTo59kWqFovsZPuUDscvV/XzHUQRScdrXkw4rAprEfNXBwJIOp1IWWL7XSLN2NnnGEaozVfYu7Pjvi71mPN6lq8WbPQhoqadu3H+YGCKspLoAGDy8vM/gNmqjpuNiL6SJEk6pW+/+grzTqjjalGeJApHDiDmuB4lmqybSj2cV8fwsJ0IM9/qTmWg7eUrP5fI6wnbS0naGDhC0rnE5N9gxh4dJEmSJDWmzMOt3Ww7OlKPPq+Xuj7qa133JkmLE5OZA4ilqnNl5iRJkl5IXdbzqhWd5G+Po8a9AkmSJEnr0chqwyRJkiSpCTVxXpJ2lTRV10cmSZIkycRTq8jrV8A3ASSNlDRjja6bJEmSJF+hVnNezxEaWU8QZfG/kfR5ZwfazjUYkiRJkomiVpHXesCdjNHQGkU0EHf2SpIkSZKJoiaRV+kD2BtA0rzA7rbfr8W1kyRJkqQj9ejzWl3SlJKGAgsTHdnPEIunvVPr+yVJkiS9j5qXyktaglAnPohQKJ4dOAB4StIitb5fkiRJ0vuoR5PyrwiZ/N0qa8wUGf3ziBU9e5zMSJIkSdJa1KNJeXnghOrF0crPJxCrdyZJkiTJRFEP5/U6MH8n+xcEPqjD/ZIkSZJeRj3ShucA50s6ghDRhVgz5kjg7DrcL0mSJOll1MN5nUKsrHkcMH3Z9wZwMnBaHe6XJEmS9DLqUSrfTkRZR0qaCfjc9oe1vk+StBojRo6iX9v4M/XdOSZJkjoviWL77XpeP0laiX5tfTnzsnvHe8we26/UIGuSpLXJIV6S1ID2EcO7PihJkprRoxejTJJWoU+//rx91gHjPWamoSc1yJokmfSph8LG4ZLmqvV1kyRJkqRCPdKG+xB6hkmSJElSF+qRNvwtcISkE4GXgLHW9bI9qg73TJIkSXoR9XBemxFivP83jvczKkuSJEkmino4r+3rcM2kxRk+ciT928Y/bunOMUmSJFCfJuW7ACTNTugZ/g2YxvZbtb5X0jr0b2tj32GXjveYU9ffoUHWJEnS6tTceUmaCrgI+D4winBgp0maEdgsG5eTJEmSiaUe1YanAjMA8wKflX37Au3EWl9JkiRJMlHUw3ltAuxj+6XKDtvPAnsA69ThfkmSJEkvox7Oa3Lgy072DwT61OF+SZIkSS+jHs7rBuB4SdOV7XZJCwBnADfX4X5JkiRJL6MezusnwHDgv8S6Xo8Cz5TtvepwvyRJkqSXUY9S+Q+B70uaD1i43MO2n6n1vZIkSZLeSV2WRJHUF1iovOYiFDeSJEmSpCbUo89rfuDPRLn8vwkHuaCk/wCDbL9Y63tOKKn2kCQ9m/wbTbqiHvJQlwD3A7vb/higFG9cCJwHrF2He04QqfaQJD2b/BtNuqIeacNlgKMrjgvA9vvAz4Dv1eF+vYrhI0c224QkSZKmU4/I6wFgTSJlWM1KwD/rcL9eRY5IkyRJauS8JB1dtfkC8CtJawAPEfqGiwNbAafX4n5JkiRJ76ZWkdfKHbbvJQo21q/a9wDw7RrdL0mSJOnF1MR52V69FtdJkiRJku5QjzkvJG1I9HgN7PBWu+3j63HPJEmSpPdQjz6vC4nVlJ9izJIoFdqBdF5JkiTJRFGPyOsHwBa2b6jDtZMkSZKkLn1er5VXkiRJktSFekReuwNnSvo18DJRKj8a23fX4Z5JkiRJL6IezmtZYGng4k7eawe6FCOTtD2wfzn+U2BP2w9LOhjYkbD7MuAo2+01sjtJkiRpEeqRNjwUOASYBujf4TWgq5MlCTgZWM/2UsCxwHWSNgC2JJzjYsDqwBZ1sD9JkiTp4dQj8voCuKFa2/BrnL+r7TfK9sPALISjusL2JwCSLiKqGn83kfYmSZIkLUY9nNfBwKmS9iOkokZUv2l7VKdnjXn/ReBFAEl9gF8ANwKzAn+qOvRVYI5aGZ0kSZK0DvVIGx4DrMuYPq/hHV7dQtKURFQ1P7ArYWv1/FYfICXWkyRJeiH1iLy2n9gLSJoLuAl4Gljd9meSXgZmqzpsNiL6SpIkSXoZNXdetu+amPMlTQ3cCVxi+6iqt24AjpB0LpGKHEznFY1JkiTJJE495KFeYez03ljYnquLS/wYmBsYJGlQ1f41geuAB4mqxRuA8S9slSRJkkyS1CNteGgn9/gW0Z/V8b2vUIR7x6V/eFx5JUmSJL2YeqQNL+lsv6T7gYOAi2p9zyRJkqR3UY9qw3HxDNFgnCRJkiQTRT3mvNboZPc0wD7AE7W+X5IkSdL7qMec122d7PsSeAjYrQ73S5IkSXoZ9ZjzamQqMkmSJOmF1MR5Seq2w+pKHipJkiRJuqJWkdcIxtPbVUV7De+ZJEmS9FJq5UhWH897sxPLmswDXFWj+yVJkiS9mJo4r84koUoqcU/gSOANYC3bf63F/ZIkSZLeTV1SeJK+A5wJLAj8HDjZdrcV5ZMkSZJkfNTUeUmaHjgJ2Am4GdjM9ku1vEeSJEmS1Mx5SdqV0CT8CBhk+8ZaXTtJkiRJqqlVqfx9wIrAS8TKxzNI2rmzY21fWIt7JkmSJL2XWkVeswMvE6sb7zue49qBdF5JkiTJRFGrasN5anGdJEmSJOkOKeWUJEmStBzpvJIkSZKWI51XkiRJ0nKk80qSJElajnReSZIkScuRzquXMmJk1yvTdOeYJEmSZpDLk/RS+rX15czL7h3vMXtsv1KDrEmSJJkwMvJKkiRJWo50XkmSJEnLkc4rSZIkaTnSeSVJkiQtRzqvJEmSpOVI55UkSZK0HOm8kqQLho8c2WwTkiTpQPZ5JUkX9G9rY99hl473mFPX36FB1iRJAhl5JUmSJC1IOq+kx9A+YnhNj0tqR8qJJT2NTBsmPYY+/frz9lkHdHncTENPaoA1STUpJ5b0NDLySpIkSVqOdF5JkiRJy5HOK0mSJGk50nmNgyweSJIk6blkwcY4yOKBJEmSnktGXhNJlhAnSTBqRNff8+4c02i6a1NPtL03k5HXRJIlxEkS9O3Xl2fPumu8x8w/dNUGWdN9umM39EzbezMZeSVJkiQtRzqvJEmSpOVoubShpA2B44GBwGPALrY/bK5VSZIkSSNpqchL0ozARcD3bQt4HjihuVYlSZIkjaalnBewDvCQ7f+U7bOA7ST1aaJNXZJVWI2nVX/nSffpTo9l9mFOurRa2nBO4JWq7VeBaYCpgR6bOswqrMbTqr/zpPt0pxcz+zAnXfq0t7c324ZuI+kQYE7bQ8t2P2A4MJXtT8ZxzjvAS42zMkmSXsK7ttdrthG9lVaLvF4GVqjanh14b1yOC8D2jHW3KkmSJGkorTbn9WdgRUkLlO3dgRuaaE+SJEnSBFoqbQggaQOiVH4A8Bywg+3/NdeqJEmSpJG0nPNKkiRJklZLGyZJkiRJOq8kSZKk9UjnlSRJkrQc6bwmUXq66kh3aLXPIGleSVM0244k6Q2k8xoPktqabcOEIqmvpD622zvsbwlHIKmPpCGSprbdXrZ7vO2S+gOPA9u3gr3VSFpE0l6Slmy2LRNCK/59JrUjqw3HQbUDkLQC8LHtJ5tsVreRtASwJXCH7dubbc+EIOlcQvbrHNt3NNue7iBpQcJ53QfsZLvHq7oUhZpTgZWBh4CFgbtsHyapr+0eKf7YcXAmaRXgPtsjm2hW0mAy8hoHZdS/qKRbgKOBkyXN2my7OkNS36qf2yT9khAtHg4sLWn68l6PjAhKdFX9XbwH+D5wSnl/QFMMGw+SZin/Diy7pgWOBSYDdmuWXRPId4D5bC9jewhwErCWpKl6ouOqfH+rBpWDJd0HHA7sJmmqZtqXNJZ0XoWOKYiSBjoR+L3tdYkH02dlf4+i8qCRNBkwGzALsAZwBfAvYDlJ01bScM2z9KtIarPdbnuUpBmKE3sPuAkYCWD7y6Ya2QFJAm4FsP1F2b0m8AkwGNhC0iaSNiz/Jz0GSfNIWqtszsXYz4CZgTdtf9zTvicwxmkBSFoJ2Jr4ng8F7qZ8X5LeQa9PG3aSgpgXeAuYghj5T088TEcC6xHrif3K9ltNMHc0HdKaMwAHAC8A1wJ/Bz4v2x8CKwLP216jSeaOlzIgOJ7QrXwWGGr7c0kvAcfbPltSf9tNXd+iONqR5efbgfmA623vI2kv4FHbd0p6GpgHGGL70uZZPDYlgv0B8Xs+h0jNvg28YfszSRcBn1eEr3sakqYEtiIGDksDlwBnAnMTn2VG4ArbZzfNyKRh9PrIq8oBbCjp78ChwHVE9HIh8B9gGJFS2RtYBPioOdaOoURRU5fNjwlntSIwikgHbQVsb3trYAvguZ4WNZZ04ZTAH4AvbK8M3AxURv1HAEeWn5sewVQ5ri2Iv52ZicECwGLAYZLuBh4A3iQGD02nkpItEez/gE2Aq4B2288Xx9WP+AwXlXN6YjHEzMC+wLrAH4nU+ADi+/Nr4EZCrDvpBfRK51X+UKu3lwP2IOYqDgDWAjYD7iXSha8BnwKrEX/8DQ9XO0lrrg2cKWlh258TD/0RwO623wQ2AgZJOg64ALi52ZFLNZJWJNZn+4KIbD+Q9FNgGeAGSdsAvwP+Ielj4qHVVMoc6K3Ew/+HRPRydHl7OPE9+antnQnbN+/4XWsGVWnlbYHliNUZnibWw6uwEfCq7QclDQaeKoVKDaWSrqz6dyVJG0ua3PbzRLS1GbCA7SOIwcNtwGfEPOk/G21z0hx6TdqwRB1r2761bA8ElrD9kKR9iAn3d4CdiIf9jcSDdTNgQ2Be4DLbJzfD/gqS1gOeARYCBhHpwBPLe3sA6wM/Ku+vRSzUebDt95tk7+hUW4f9VwJz2f5esXs34E/AY8B3iRH0lsBUwGK272mg2V+xu6STTwAWtL102Tcr8bDc2vadHc5vWrVeJ4UNiwI7E6m2zYkIZk9iPaojyjGXA3MQA4k24EjbjzTY7q98VyQdDywF7G/7ifJ3+wfgTiJKPAZYghiIH2z7r420OWkevSLykjQtsDxwc6VKjPjib1F+fgM4CBCwsu0zgV8C+9k+D9ge+G7FcTUipdKxAk/SspIeBg4EzgX6A08Ai5bJa4jijIWBnwF/tX2A7aG2329GGqiM9PerqnbcturtfYFvSVq//L6/DfzS9hWAiTRom+33Gu24IFKE5f/g+6VA4xWiiGTKEqlj+w2i1PxSSQdLmqvq/GY5rkoBTHVxznJEGvkm2+/bNjFI+FblswADCed1ie2NG+24YPTvfGpJR0s6StK6wGHl7TUlfbMUyNxOZEoWLVWS29heIR1X72KSdl7l4XMS8D3b9xF5/rPK2/MBvyo/P768ZNoAABc/SURBVE2M+t+2/amkVYmU1tXl/U9sf1JxAPXuJ5HUr6oCrzKvtRdwke3VidTgTUTe/31gT0Wf0fZEuupM2yOqrte3kT0wVU63L7AB4WDnAC4r6U5sv05Uc55Rjt27vP8YUVCwV0mHNgVJWxKFL1sC1xPpwVeJ+dDRpfBlQHMDsDhRHNNUqubl9gNOkjTI9iXE93tuSbOVQ/9CFCZdIOk84HLb37J9faNslbSzpMqq6H0krQY8CExJzOOeCWxHFE5tBFSaqD8HXqQspmv7xUbZnPQcJtm0YSUFUUb9nxKpkjbgEWJe64fAKbavLsevRERjzxIVhqfZvqrBNm9i+8aq7cOJBtL9geOAC2xfW1Kg0wOrE/Nv6xGR5TW2j2ykzdWUkf5YjlLShcRD/UhgCFFEsng5dk4iWjzI9rmKxuo22w2btyh29KmOlBT9QhcBvynVg8sS/wf3ERHYTsDFlQf9uFKjjaBSdVr176LEvNA/gSeB/yMWcb2IKEA6FvhzGRjNQaTE/9DI6tlKSlXSdsXW6Up5/vHAO7Z/UY5blXC60xKZkPnK624irflKo2xOeh6TnPPqbK5B0lWEA9sH2AU4mYjCvk2Mps8Hbrf9pqRFXaWkoU6klupk9yLEKP8oYFai8XJp2yuU968j5uGutf2RpI0JR7BVmQcYaPvDcmxT1REkfZNIyT5IVA6eVl53APcTyhmnS1qIcMqLAwtXR4sNsrO63WB6YP5SsLAkEdXOVvX+UUSl6RCiInUaYLdGfDfGZTsdBgpl/48A2d6zbM9OONw5iFTbPMSD/9nGWjzavo5zifcBT9vetUSA/yZSsQMc7RKPESn9O4i5ralt39YM25OeRdMroWpJeRhVKqs2L7tvJRzC2cAqwMXEH/GfbG9b/th3JUZ0x1QcV+WPrJ4PJ0mLERWCn9h+SqGMcYztQyV9AUwuaSbbbxMVVZsQ8xTXAD8mSrIBhtv+oqTr2pvsuHYh5uX+TBSObEDYuTkhQXQocFVx1isTn+OuZkQuVY7pcGBj4NUy0LmdmBPaGriyHH4HsKzt/0k6DXitWY4LRts+sgwUdgBesn0d0es0QtHT1Wb7NUm3EcU95xMl5c20e2TJHGxC/E63Bl5SVMW+CcxAFMU8UyLDV4n+uc+ING6SAJNm5LUAkaKahyhdng/YlMidLwXsRzixC2xPWc6Z1vYHDbRxBuDnRKrvOaK/Zl2i3PpVYG0ip388cK/tX5WR9sZENeE8RHPsuY2yuSPjSLf1I+bczrH9J0nT2P5Q0pxE2uoa2+coKiaXJqLIfzfQ5kq/U7XNOwOr2B4sqRKJtxNzLAcQihkzEz1nZ7sHNcCW+aLdgFuABYmKwiFE4dG5th8p87TXA8eWqLIhmYTx2LwDMb/5b+J7vyrwC6Iq9qfEd342IvLdtvz7M2BEM+1Oeh4t67wkzUhUrL0J/M/2pZLWIKKse2wfopDmOYF4UK5FNBtfA/wWuIwoGHiwagRe93RbqUi7hNDvO6qMRFcBbPstSfsCu9peWFHCvwQx//ZoOb8NGNVImzv5DKPvKWl+IoX2NFHe/jsiynqNcAKrEA3fMwHbADuUardG2VqpuKuOyucmHoavlajrB8R34xuEWgPEQ3TJ8pqPePg3JV01Dqfbn5D/Ot32veW7/w7RpL434cz+SAzcniZK4z9qlAMYx+BmauBy4BdlLnFG2+9ImrzYPoiI0jcmUrQ32n6oEfYmrUdLOi9JBxLphr8S1XaLESPQeYm5lddtb19SJ9MRzcZrEg+ptYHBJRXXDNt3Aea1feg43p+C+AM+j/hDP5fo5TqwvF+ZmG/2vNZA4BAiZfUi4Xx3l/QUcIbts8px2xD9dTtL2sClz65BNk5e0k2V7cmIyrV1ifaIXxLpzeOAd4G/EQ53A+Bh25crKj8bOhdXTYeBwkLE3NXzRMXdscRneZL4PJsRA6NLiWhxeeAB239sos0zAXOWKHBJ4vc9S9Xga1Vi8PNN4DzbPUoFJum5tFypvEKZYSlgkO19bR9DTJx/WKKTc4E+kpZ0yOFMQfxxvwecTpXj0thK5vW0ubrHaimip6ZaRaCvpMlK9dV8wMHEQ/YLokJstD5e5Y++kY6r4+9J0lLE3OEA2/NSUj2SNiOqOPeTtL+kPYnCk5uLzY10XNMCZ5RKQSStQ0Tl79tegKg63QyYpxQ33Gf7z8ScyypEDx3NcFySBkhaTdLAUpU3sMyzXUMMwB4AliUadLcAfmR7R6LqdBbgEdu32D6i0Y4LxlL0OI6Ycz6ozEE/DbxOVGtWmBXYyvbFREVndbScJOOkZZxX1Rd6LWAa2y8qFtHbBzhU0vUKzbm/E/0rZyrkbX5JVBqOArD9dmdpmDrZPLovTGOWzugLfCppCo8pcR5FlPEfRoxSbyXSWMvZHuYmriPWYRRdWZrkG0QqtuKUHyLs3Y0o0f4hoYyxFPFguq6B9la+Jx8RhTnvF7tXJOSDHi3v/5r4v1i/pD73lvQ3orR8u0qattGUyPsHxHzbd8vu7xGFGCva3p2olt2GiMIgZKh+THzXHyzXaZgDKIOvjrJOPwK+YXs5YiD2AKFPeSzRf7a6omn9IOD3ALZ/Wf5tvXRQ0nB6fNqwY3qsjKRvISbW5yWaLQH+S0zwfo9IQZxBOK0zbF9JE5G0MhGBnE6ke04Bfmj7wapjpiLShPvYfq4pho4DSfMQ84OfEOmp04jf9frEwotvKnq0DgT+WyKZZtjZsQx7csKp/oNIcV5OPETPdvQV7Uqk3S60PUzS3G7SIpJloLUxEZ0MIxzUq4Qg9JFEqu3/yrEDgbvKex8B6xCO7HjbjzXY7urBzVzE//8nCnGA1Yi53amIjAJEdenqRKp/fqK69r5G2pxMGvTYUvnK3E7VH8aORBn4pZI2IAoZ7ge+JNYg+rzMCSxGNDZeCSxfcVzNmLuQ9D1CJeApooJqd+IB9TAwVNJiti+UtDqRAnoceKnq/KYWY5TtFRjT4HoL0R/3OZFWe5n4TEcSn/EGShl2M6raqsqwf0KIzP5O0s+JvqHTiWKSQUQUdhuhoLIc4ZRpouNam/j9rkP0ZE1ftvcnHMBtwP4KeaT/OtoiniOae69jzACuUfZO5qJ+UtKa3yAGNHMDT5R5z58DkxODymFElLsZsIhjiZumVj0mrU+PTRtWTehuJOkCYsT2K0kz2/4H8SB63faLxXFtSERadznK3u8ldOg2L9erq+NS54tZ7gWcanubYv/7RDnwHoRKwP6Sfk84rhMdOoSj7WzwvNZCHUbR2yp6sdYmJtJPsf00sfDf0oRqxt3AepK+Xey+xvY1xfZGNHbP1mF7MPH/LuB0ST8hBFzvIqKSqwnZoY0kzWb7I+DHtu+ut61dMIiQZ3qa+H7cWqKR54jFFvsRYsyXS5pD0rFEY3fD7Vb0Jl6o0B2sNHdfAPzdIV22MNE3ObXtnwAPlSrNOYgCkichU4PJxNOjnFfFAVTlzb9D5MivI3T7ngGOVJTc7grcLmkDSX8g0nLneIzMzSNEaq6u8y0qS16UUX8/xbIZUxLzQd8gSoAh0lU3Eioac9m+iPhjPsD2Sg6twoYVkXT4DDMRD8JvSfq2pF8TSiQvE/03K5fj+tm+n3AOcxBO4WpiQcOGPpBKKvb35eeBil6yDYlS/CGEuO9+RAHGucCCJcK5lHBgnxabm1GQMUjSkPLz1ERK7bfl7auAt0qm4TfEasczE9qKbxBzdTMDa7iBKhlV38u3iPaUjcoAbWpizbv/SbqZ+C5sBkxR5hIPKnOJGwNbuoF9fcmkTY9wXlUFFCPL6L/yEFwXuL9UTpnoWdkK+Bbx0Ly5HPOAQ1X65nK9PrY/t/1yHW2eq9g8omxvRIyUzyVSliOJB+S0kqYqaZYRhOjo0HLuR441iqqLOxpe/l6qLy8mHOtmRGS4j+2PiZTUlJI2tD1C0WD9AvAv26/aPq2R6bbKwMahND+rpBeIQpH5iOrMAaXK7QTiYX8I4chuIlZovtv2oW7SEjGFqRgjCj0H0XT+adl+mXCw+xCO4j5ibnE22zsRxSS72X63UcZWFRVVbB9ARFhrEKsb7EoMdn5je1uiEvI35bNsSjitQZXvepLUgqYXbGjspdWHENVeDxJzFEsTjchruCykqFjt+F3bG5btan26hgikKpZ8f5sY+c9KKNX/jVhn6Hki2tqamLvYjJAaupkYPb9EFJTs7R4kLFqq3P5JKJFcTzRG/0Jj5If2L/tXJoRcD2+wfdUpzX5Eu8EfiYq8OWy/UQZBhxHirmdKOpKQo9qKSCc37IHfFZL+QjjVZ4jvxSPE4pZ/JZRWTiAWWDyaKN44zfYzDbbxdKLg6dkyaDiYyIBcTTSiP0l8N64iUuL72v5A0m+JlP6BjbQ36V00xXlJmo6QhDnC9iuSvkU87BcjRp0HECPOvxPlzf+zvU9JFe1ESPasWkbf1aPxun4YSQNsf1ns/xRY3NF8+QUxZ7FzOW5HYsJ6IaI4YBNC8eBAwqFtaXtoPW39Oiike5YjHkrHA7O7NPkqersWIvqhGuZ0O/7fKpYqmRG42va7JWX8pe0tJS1MFL3MSCyrslv5LKe6gfJf3UHS0oSjeoFwuEsRBRuzEd/9T4hm6SVdBJcbaFt/28MVMl5/crR0TEUMzn7qWBRyVSJSf4QYmF1AlMLPQLRO7OWqBvEkqTUNdV4KSadlHLp38xGVVSOIkdwCwLa2n5a0KeG0/kxUtV1K/JHPSZRoDyEmgq9okN2z236tansKIq2zPKEntzYh0zNT1TGPA3+zvZuivH9OYg5s33LseT2t4qo4in8RUkInEanBIc21KlAsInoQ4ZQ+BGa1vYRiNeOXiR6oRyT9jmih6Ec0797fNKO7QNKJwJ62J6/a930iBfc2sTLwGw20Zx5XrY2laPS+gah8/BMxL3ei7dsV5foHAt8B9rD9gqTFgY9tv9Aom5PeS6PnvFYGhkmamVC8eIiYszqeeCBVVqi9gcj3fw/4H5E+vM72MmXf6kSarq5ImqIUL/xI0nSSppF0e7HhWqLH5v8c5fhvSzqm6vRdiVJhiPmvVcprXcfqzD2u4qrYszPxUDqBaH6dprlWjZ5PvJtIB37HdqXSba/ycP81sZrxsUSacDfbS/dkx1U4FfigRDgA2L4W2ND24EY5LklzS7qaUJ1H0iySLieape8gIsPPiHTmghqzovFHhKLHlsX2x9NxJY2iUfJIlYKM64g0w96Es/o9sJ9j8cEHgW9LUjntWqJvZEFiFL24pDsJhY0N6z35WyrrPiUaXOcEliHEZdtt/8VR1vwAsEJJVw0GfqZYPwnbf7e9ffn5X8AhtneqjuB6Io7l30cRke6sjUxZ6asqDZtKGkT0CX0OzKzQJ4SIDHeWNIftvYkofSDwbPl993hKocxJRDVtw5HUVopb7iKyBGsp2iNeJZZ8ucD2UURRxnbEPPRGwFklatwa+JntE5thf9K7qVvasJO5iu8SfwBzEtHWCkRhw+WEwvtfCOWJO4ll7Nur03Wlym1aN1B9ohQGLE/Msz1PjDKnI6rWPlU0Z55MqAocKOkS4BLbf626RtNW2f269BSbJZ1FaFPuTaRmDwY2qVSRluKdR23/sKfYPKGU79hPiSbf0asFNOC+2xHp4cmIxvJlqgpiXgRucvRpIWktYqC5AFFtuBkxkPuF7Xe+cvEkaQB1cV4dKgjbiAn0m4hqqluI6ryBRF/O1sQ80GqEMsJsxEqv75bzG1WM8ZX5J0lnEFVU1xFVX6sS8j0Qqu+/I8RQtwYOtP2feto4KaKvKpD/gFjD7DGFCvkhwN22f1NStvcSDceflzmWaW3f27QP0IKU4osTiDXt/inpfqLo4jTbn5U07dVEwc775Zx7gU9tr9M0w5OkiroWbEjaj+gJeQ3Y0fYaVe+9TvQ73U44h8eIkfWoRo6gOzotSQtUnJBCtWN/26sp1n1ak1DDmJZIE65A9Lq8bvt/nV0v6ZwOA5y+DpmhZQkNxWuJxRRHlraElYiG45mIyPy7bpJw7qSIpE2IDMIg20+VffcAT9v+YdmeBVjdTdYJTZIKNZnzktSner5C0uKShhEptzMIbbZFVBp7C7cRqZI2onLvNNvDywOrYUuVdHBcKwL/krR7KYd/nVAPgCgTfgNY2Pa1tjcGNrD9hGNp+IZEiK1O1ZxgdW/fpYrVAf5NpKeWJ1oMKNvfJaryHiLK3xva7zSpUjUXfSNlwUqFOgxEqnzXEv1i+810XElPYqIjrw4j6Kltf1RK4p8ELrZ9QCktP4NQEliPUEPYi9Bn28r26+X8hkQtHWyegsj9P0goYK9IKEz0JaKA3wNLOFTIjyAUEY52D2owbgVK2fV1wNy251do4l1GFGJcTbRATEb8XxxKlL8fTqxkfByRdr7Y9idNMH+SpfK3UAqlbiEGB3eXfUOIKt+c10p6HF/LeVWcTFW6Z0qiKXdOYk7iWmJ+aE+iMvDtUnL9R6J/ZQmiSqmhIzlJyxMr/n5QtjclBHM/Iiat57C9Qqlo+z0RdW0KbG/7foUO3ZelTDjpAnVQPyGab5cnVFQeA06yvX7V8S8QZfrvE/Of8xE6hAdXF8EktaXq7/gMol1lPfewpu4k6cgEp+dK1eAZMHo5hMWJUfHzhIjuDkQK8LdEifu2io79D4n5oZ8QyhSVpUraOrlNTZG0Zimz/zlwj6S9JW1PFJCcaHtz298Hppd0tEOHcHdC4WM6QjMPYsL6i0alNVuZDo6rf4l0zyGaXc8AFgHaJM2mEHiFqDzdybGi8WBivnGFdFwNY396oBpJknTG13kIzwwspFACqGzfTvTZHE4oYhxW3tuPkHpaAMAhlvuKY7G60asMT4T9XSJpbyLt9AvbaxMNlXcQunJ9CG3CCgcQOngQRRhXEXNzq1Xb6iaI57YSkjYG3pR0MIBDaqgvkTY+jmg4PoWQclrLRbeSGChUVtX9r2NF6aTOlEFoRcz69822J0m6Q5fOS2Xp99KPAuGkriciqgFEE/EuROn4VY7VXteWdLbtilP7yn0aUVGoWEl3aWAL2zcWhzmQULz4BlE5uEXVKSOKvZU/6P5EtWTd1TwmMQYQ7RG7SfqJpCWKw3+TUPDYAZidWE5jiKTTShn8twi9v6TBZKFR0mqM13lJWpBInY1e+qNMmH+b4hSIlGE7cJRjsT8IIdq7y/GDbT9RF+u7wCEMuhZweIkCbiNG/jcyZkXgKSRdIOkHRO9Lda/WbsScS0soNvQgriNSgB8TkkIXl/nCG4g5ww8JtYblgB2JKPhc2+s75YWSJOkGXRZsSHqGmHu4SdJOhCju40S58tqEAxtKNBz/F5ifkE3ap1IZpiYsZ19l//eAHxHrD11OyB7dS+gjHkmsO3QY4dBOdcg+Vc7tX5XSSiYAhQr93cTaTnsRLRHvEivs/rSkET8FFnMDF1VMkmTSoDvOaz7gUaKMfCRwjO0HFSvXHgm8bPsoSfMSwrOPObQKe3TDrqRFiZL4E4m5us9s/6SkFttzXmvikXQuMLPtTRVLmfyMSDOvY/sexSKdHzfXyiRJWpFulcorlNXnt71e1b5+xIJ0BxANpPdXvdcH6NNTHICkeSgK2Y5lM44AtiH6ta6QtD6hMLB+9m/VjtLv9zgwxPYNpcJzfaJN4sWmGpckSUvTXec1JSUlaPvVqr6Q2YFFbP+l6tgeF20V+38BLEoUbLxArPr6Snl/MmCAG7zoX29A0r7Asa5asypJkmRi6XaTsqShRLpnUGdzWD3RaVVT0oHTADPa/ndlXyOqHnszGls1PdOxSZLUhAlxXn2JhSHXdKz51NI0s4gkSZIkmTgmSB5K0sy236qjPUmSJEnSJROlbVgHe5IkSZKkS+q6nleSJEmS1IMUmE2SJElajnReSZIkScuRzitJkiRpOdJ5JUmSJC1HOq8kSZKk5UjnlSRJkrQc/w+htL+xJP6S6gAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 360x216 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(5,3))\n",
"ax = plt.subplot(111)\n",
"sns.set_palette(sns.color_palette(\"Set2\"))#\n",
"df = pd.melt(dataframes['count_units'], id_vars='sorter_name', var_name='metric', value_name='score', \n",
" value_vars=('num_well_detected', 'num_false_positive', 'num_redundant', 'num_overmerged'))\n",
"# p = sns.barplot(data=df, x='sorter_name', y='score', hue='metric', ax=ax, \n",
"# order=sorter_order)\n",
"p = sns.catplot(x='sorter_name', y='score', hue='metric', data=df,\n",
" height=6, kind=\"bar\", ax=ax, order=sorter_order)\n",
"plt.close(p.fig)\n",
"ax.set_xticklabels(sorters, rotation=30, ha='right')\n",
"# p.legend(loc='right', bbox_to_anchor=(1.8, 0.5), ncol=1, frameon=False)\n",
"# ax.legend([\"Detected\\nunits\", \"Redundant\\nunits\", \"False positive\\nunits\"],\n",
"# bbox_to_anchor=(0.8, 0.45), loc=2, borderaxespad=0., frameon=True)\n",
"ax.legend(bbox_to_anchor=(0.9, 0.95), borderaxespad=0., frameon=False, labelspacing=0.2)\n",
"for t, l in zip(ax.legend_.texts,(\"Well detected\", \"False positive\", \"Redundant\", \"Overmerged\")):\n",
" t.set_text(l)\n",
"ax.legend_.set_title(None)\n",
"ax.set_xlabel(None);\n",
"ax.set_ylabel('Number of units');\n",
"clear_axes(ax)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 950.4x144 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.set_palette(sns.color_palette(\"deep\"))#\n",
"height = 2\n",
"aspect = 1.1\n",
"g = sns.relplot(data=dataframes['perf_by_units'], x='snr', y='accuracy', col='sorter_name', \n",
" height=height, aspect=aspect, col_wrap=6, col_order=sorter_order, s=40)\n",
"for i,ax in enumerate(g.axes):\n",
" ax.set_title(sorters[i])\n",
" ax.set_xlabel('')\n",
"g.axes[0].set_xlabel('SNR');\n",
"g.axes[0].set_ylabel('Accuracy');\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:spikeinterface]",
"language": "python",
"name": "conda-env-spikeinterface-py"
},
"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.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment