Skip to content

Commit 3a85fb1

Browse files
author
Daniel Incicau
committed
Notebooks: Translate errorbars horizontally so they dont overlap
1 parent 9695476 commit 3a85fb1

File tree

2 files changed

+50
-32
lines changed

2 files changed

+50
-32
lines changed

notebooks/layer5_CC_CS_connection.ipynb

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"source": [
1010
"from brian2 import *\n",
1111
"from matplotlib import pyplot as plt\n",
12+
"from matplotlib.transforms import Affine2D\n",
1213
"import pandas as pd\n",
1314
"import numpy as np\n",
1415
"from src.nb_helpers import *\n",
@@ -803,6 +804,11 @@
803804
"fig, axs = plt.subplots(1, 3, figsize=(26, 6))\n",
804805
"xticks = np.linspace(0, len(cc_cs_weights)-1, len(cc_cs_weights))\n",
805806
"\n",
807+
"trans1 = Affine2D().translate(-0.2, 0.0)\n",
808+
"trans2 = Affine2D().translate(-0.1, 0.0)\n",
809+
"trans3 = Affine2D().translate(+0.0, 0.0)\n",
810+
"trans4 = Affine2D().translate(+0.1, 0.0)\n",
811+
"\n",
806812
"os_cs_mean = [os_record[0] for os_record in os_mean_data]\n",
807813
"os_cs_std = [os_record[0] for os_record in os_std_data]\n",
808814
"os_cc_mean = [os_record[1] for os_record in os_mean_data]\n",
@@ -813,10 +819,10 @@
813819
"os_pv_std = [os_record[3] for os_record in os_std_data]\n",
814820
"\n",
815821
"# Plot orientation selectivity\n",
816-
"axs[0].errorbar(xticks, os_cs_mean, fmt='b', yerr=os_cs_std, label='CS')\n",
817-
"axs[0].errorbar(xticks, os_cc_mean, fmt='r', yerr=os_cc_std, label='CC')\n",
818-
"axs[0].errorbar(xticks, os_sst_mean, fmt='g', yerr=os_sst_std, label='SST')\n",
819-
"axs[0].errorbar(xticks, os_pv_mean, fmt='y', yerr=os_pv_std, label='PV')\n",
822+
"axs[0].errorbar(xticks, os_cs_mean, fmt='b', yerr=os_cs_std, label='CS', transform=trans1+axs[0].transData, elinewidth=2)\n",
823+
"axs[0].errorbar(xticks, os_cc_mean, fmt='r', yerr=os_cc_std, label='CC', transform=trans2+axs[0].transData, elinewidth=2)\n",
824+
"axs[0].errorbar(xticks, os_sst_mean, fmt='g', yerr=os_sst_std, label='SST', transform=trans3+axs[0].transData, elinewidth=2)\n",
825+
"axs[0].errorbar(xticks, os_pv_mean, fmt='y', yerr=os_pv_std, label='PV', transform=trans4+axs[0].transData, elinewidth=2)\n",
820826
"axs[0].set_xticks(xticks)\n",
821827
"axs[0].set_xticklabels(cc_cs_weights)\n",
822828
"axs[0].set_xlabel('Scalar of CC_CS connection')\n",
@@ -834,10 +840,10 @@
834840
"os_paper_pv_std = [os_record[3] for os_record in os_paper_std_data]\n",
835841
"\n",
836842
"# Plot orientation selectivity (paper)\n",
837-
"axs[1].errorbar(xticks, os_paper_cs_mean, fmt='b', yerr=os_paper_cs_std, label='CS')\n",
838-
"axs[1].errorbar(xticks, os_paper_cc_mean, fmt='r', yerr=os_paper_cc_std, label='CC')\n",
839-
"axs[1].errorbar(xticks, os_paper_sst_mean, fmt='g', yerr=os_paper_sst_std, label='SST')\n",
840-
"axs[1].errorbar(xticks, os_paper_pv_mean, fmt='y', yerr=os_paper_pv_std, label='PV')\n",
843+
"axs[1].errorbar(xticks, os_paper_cs_mean, fmt='b', yerr=os_paper_cs_std, label='CS', transform=trans1+axs[1].transData, elinewidth=2)\n",
844+
"axs[1].errorbar(xticks, os_paper_cc_mean, fmt='r', yerr=os_paper_cc_std, label='CC', transform=trans2+axs[1].transData, elinewidth=2)\n",
845+
"axs[1].errorbar(xticks, os_paper_sst_mean, fmt='g', yerr=os_paper_sst_std, label='SST', transform=trans3+axs[1].transData, elinewidth=2)\n",
846+
"axs[1].errorbar(xticks, os_paper_pv_mean, fmt='y', yerr=os_paper_pv_std, label='PV', transform=trans4+axs[1].transData, elinewidth=2)\n",
841847
"axs[1].set_xticks(xticks)\n",
842848
"axs[1].set_xticklabels(cc_cs_weights)\n",
843849
"axs[1].set_xlabel('Scalar of CC_CS connection')\n",
@@ -855,10 +861,10 @@
855861
"ds_pv_std = [ds_record[3] for ds_record in ds_std_data]\n",
856862
"\n",
857863
"# Plot direction selectivity\n",
858-
"axs[2].errorbar(xticks, ds_cs_mean, fmt='b', yerr=ds_cs_std, label='CS')\n",
859-
"axs[2].errorbar(xticks, ds_cc_mean, fmt='r', yerr=ds_cc_std, label='CC')\n",
860-
"axs[2].errorbar(xticks, ds_sst_mean, fmt='g', yerr=ds_sst_std, label='SST')\n",
861-
"axs[2].errorbar(xticks, ds_pv_mean, fmt='y', yerr=ds_pv_std, label='PV')\n",
864+
"axs[2].errorbar(xticks, ds_cs_mean, fmt='b', yerr=ds_cs_std, label='CS', transform=trans1+axs[2].transData, elinewidth=2)\n",
865+
"axs[2].errorbar(xticks, ds_cc_mean, fmt='r', yerr=ds_cc_std, label='CC', transform=trans2+axs[2].transData, elinewidth=2)\n",
866+
"axs[2].errorbar(xticks, ds_sst_mean, fmt='g', yerr=ds_sst_std, label='SST', transform=trans3+axs[2].transData, elinewidth=2)\n",
867+
"axs[2].errorbar(xticks, ds_pv_mean, fmt='y', yerr=ds_pv_std, label='PV', transform=trans4+axs[2].transData, elinewidth=2)\n",
862868
"axs[2].set_xticks(xticks)\n",
863869
"axs[2].set_xticklabels(cc_cs_weights)\n",
864870
"axs[2].set_xlabel('Scalar of CC_CS connection')\n",
@@ -877,6 +883,9 @@
877883
"fig, axs = plt.subplots(1, 2, figsize=(18, 6))\n",
878884
"xticks = np.linspace(0, len(cc_cs_weights)-1, len(cc_cs_weights))\n",
879885
"\n",
886+
"trans1 = Affine2D().translate(-0.05, 0.0)\n",
887+
"trans2 = Affine2D().translate(+0.0, 0.0)\n",
888+
"\n",
880889
"firing_rates_mean_over_input_degrees = np.mean(firing_rates_mean_over_simulations, axis=0)\n",
881890
"firing_rates_std_over_input_degrees = np.mean(firing_rates_std_over_simulations, axis=0)\n",
882891
"\n",
@@ -890,10 +899,10 @@
890899
"fire_rate_pv_std = [fire_rate_std_by_weight[3] for fire_rate_std_by_weight in firing_rates_std_over_input_degrees]\n",
891900
"\n",
892901
"# Plot firing rate\n",
893-
"axs[0].errorbar(xticks, fire_rate_cs_mean, fmt='b', yerr=fire_rate_cs_std, label='CS')\n",
894-
"axs[0].errorbar(xticks, fire_rate_cc_mean, fmt='r', yerr=fire_rate_cc_std, label='CC')\n",
895-
"axs[0].errorbar(xticks, fire_rate_sst_mean, fmt='g', yerr=fire_rate_sst_std, label='SST')\n",
896-
"axs[0].errorbar(xticks, fire_rate_pv_mean, fmt='y', yerr=fire_rate_pv_std, label='PV')\n",
902+
"axs[0].errorbar(xticks, fire_rate_cs_mean, fmt='b', yerr=fire_rate_cs_std, label='CS', elinewidth=2)\n",
903+
"axs[0].errorbar(xticks, fire_rate_cc_mean, fmt='r', yerr=fire_rate_cc_std, label='CC', elinewidth=2)\n",
904+
"axs[0].errorbar(xticks, fire_rate_sst_mean, fmt='g', yerr=fire_rate_sst_std, label='SST', elinewidth=2)\n",
905+
"axs[0].errorbar(xticks, fire_rate_pv_mean, fmt='y', yerr=fire_rate_pv_std, label='PV', elinewidth=2)\n",
897906
"axs[0].set_xticks(xticks)\n",
898907
"axs[0].set_xticklabels(cc_cs_weights)\n",
899908
"axs[0].set_xlabel('Scalar of CC_CS connection')\n",
@@ -902,9 +911,9 @@
902911
"axs[0].legend(loc='best')\n",
903912
"\n",
904913
"# Plot os_rel, os_paper_rel and ds_rel\n",
905-
"axs[1].errorbar(xticks, os_rel_mean_data, yerr=os_rel_std_data, label='OS rel')\n",
914+
"axs[1].errorbar(xticks, os_rel_mean_data, yerr=os_rel_std_data, label='OS rel', transform=trans1+axs[1].transData, elinewidth=2)\n",
906915
"# axs[1].errorbar(xticks, os_paper_rel_mean_data, yerr=os_paper_rel_std_data, label='OS Paper rel')\n",
907-
"axs[1].errorbar(xticks, ds_rel_mean_data, yerr=ds_rel_std_data, label='DS rel')\n",
916+
"axs[1].errorbar(xticks, ds_rel_mean_data, yerr=ds_rel_std_data, label='DS rel', transform=trans2+axs[1].transData, elinewidth=2)\n",
908917
"axs[1].set_xticks(xticks)\n",
909918
"axs[1].set_xticklabels(cc_cs_weights)\n",
910919
"axs[1].set_xlabel('Scalar of CC_CS connection')\n",

notebooks/layer5_SST_Soma_selectivity.ipynb

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"source": [
1010
"from brian2 import *\n",
1111
"from matplotlib import pyplot as plt\n",
12+
"from matplotlib.transforms import Affine2D\n",
1213
"import pandas as pd\n",
1314
"import numpy as np\n",
1415
"from src.nb_helpers import *\n",
@@ -772,6 +773,11 @@
772773
"fig, axs = plt.subplots(1, 3, figsize=(26, 6))\n",
773774
"xticks = np.linspace(0, len(sst_soma_conn_weights)-1, len(sst_soma_conn_weights))\n",
774775
"\n",
776+
"trans1 = Affine2D().translate(-0.2, 0.0)\n",
777+
"trans2 = Affine2D().translate(-0.1, 0.0)\n",
778+
"trans3 = Affine2D().translate(+0.0, 0.0)\n",
779+
"trans4 = Affine2D().translate(+0.1, 0.0)\n",
780+
"\n",
775781
"os_cs_mean = [os_record[0] for os_record in os_mean_data]\n",
776782
"os_cs_std = [os_record[0] for os_record in os_std_data]\n",
777783
"os_cc_mean = [os_record[1] for os_record in os_mean_data]\n",
@@ -782,10 +788,10 @@
782788
"os_pv_std = [os_record[3] for os_record in os_std_data]\n",
783789
"\n",
784790
"# Plot orientation selectivity\n",
785-
"axs[0].errorbar(xticks, os_cs_mean, fmt='b', yerr=os_cs_std, label='CS')\n",
786-
"axs[0].errorbar(xticks, os_cc_mean, fmt='r', yerr=os_cc_std, label='CC')\n",
787-
"axs[0].errorbar(xticks, os_sst_mean, fmt='g', yerr=os_sst_std, label='SST')\n",
788-
"axs[0].errorbar(xticks, os_pv_mean, fmt='y', yerr=os_pv_std, label='PV')\n",
791+
"axs[0].errorbar(xticks, os_cs_mean, fmt='b', yerr=os_cs_std, label='CS', transform=trans1+axs[0].transData, elinewidth=2)\n",
792+
"axs[0].errorbar(xticks, os_cc_mean, fmt='r', yerr=os_cc_std, label='CC', transform=trans2+axs[0].transData, elinewidth=2)\n",
793+
"axs[0].errorbar(xticks, os_sst_mean, fmt='g', yerr=os_sst_std, label='SST', transform=trans3+axs[0].transData, elinewidth=2)\n",
794+
"axs[0].errorbar(xticks, os_pv_mean, fmt='y', yerr=os_pv_std, label='PV', transform=trans4+axs[0].transData, elinewidth=2)\n",
789795
"axs[0].set_xticks(xticks)\n",
790796
"axs[0].set_xticklabels(sst_soma_conn_weights)\n",
791797
"axs[0].set_xlabel('Scalar of SST->Soma connection')\n",
@@ -803,10 +809,10 @@
803809
"os_paper_pv_std = [os_record[3] for os_record in os_paper_std_data]\n",
804810
"\n",
805811
"# Plot orientation selectivity (paper)\n",
806-
"axs[1].errorbar(xticks, os_paper_cs_mean, fmt='b', yerr=os_paper_cs_std, label='CS')\n",
807-
"axs[1].errorbar(xticks, os_paper_cc_mean, fmt='r', yerr=os_paper_cc_std, label='CC')\n",
808-
"axs[1].errorbar(xticks, os_paper_sst_mean, fmt='g', yerr=os_paper_sst_std, label='SST')\n",
809-
"axs[1].errorbar(xticks, os_paper_pv_mean, fmt='y', yerr=os_paper_pv_std, label='PV')\n",
812+
"axs[1].errorbar(xticks, os_paper_cs_mean, fmt='b', yerr=os_paper_cs_std, label='CS', transform=trans1+axs[1].transData, elinewidth=2)\n",
813+
"axs[1].errorbar(xticks, os_paper_cc_mean, fmt='r', yerr=os_paper_cc_std, label='CC', transform=trans2+axs[1].transData, elinewidth=2)\n",
814+
"axs[1].errorbar(xticks, os_paper_sst_mean, fmt='g', yerr=os_paper_sst_std, label='SST', transform=trans3+axs[1].transData, elinewidth=2)\n",
815+
"axs[1].errorbar(xticks, os_paper_pv_mean, fmt='y', yerr=os_paper_pv_std, label='PV', transform=trans4+axs[1].transData, elinewidth=2)\n",
810816
"axs[1].set_xticks(xticks)\n",
811817
"axs[1].set_xticklabels(sst_soma_conn_weights)\n",
812818
"axs[1].set_xlabel('Scalar of SST->Soma connection')\n",
@@ -824,10 +830,10 @@
824830
"ds_pv_std = [ds_record[3] for ds_record in ds_std_data]\n",
825831
"\n",
826832
"# Plot direction selectivity\n",
827-
"axs[2].errorbar(xticks, ds_cs_mean, fmt='b', yerr=ds_cs_std, label='CS')\n",
828-
"axs[2].errorbar(xticks, ds_cc_mean, fmt='r', yerr=ds_cc_std, label='CC')\n",
829-
"axs[2].errorbar(xticks, ds_sst_mean, fmt='g', yerr=ds_sst_std, label='SST')\n",
830-
"axs[2].errorbar(xticks, ds_pv_mean, fmt='y', yerr=ds_pv_std, label='PV')\n",
833+
"axs[2].errorbar(xticks, ds_cs_mean, fmt='b', yerr=ds_cs_std, label='CS', transform=trans1+axs[2].transData, elinewidth=2)\n",
834+
"axs[2].errorbar(xticks, ds_cc_mean, fmt='r', yerr=ds_cc_std, label='CC', transform=trans2+axs[2].transData, elinewidth=2)\n",
835+
"axs[2].errorbar(xticks, ds_sst_mean, fmt='g', yerr=ds_sst_std, label='SST', transform=trans3+axs[2].transData, elinewidth=2)\n",
836+
"axs[2].errorbar(xticks, ds_pv_mean, fmt='y', yerr=ds_pv_std, label='PV', transform=trans4+axs[2].transData, elinewidth=2)\n",
831837
"axs[2].set_xticks(xticks)\n",
832838
"axs[2].set_xticklabels(sst_soma_conn_weights)\n",
833839
"axs[2].set_xlabel('Scalar of SST->Soma connection')\n",
@@ -846,6 +852,9 @@
846852
"fig, axs = plt.subplots(1, 2, figsize=(18, 6))\n",
847853
"xticks = np.linspace(0, len(sst_soma_conn_weights)-1, len(sst_soma_conn_weights))\n",
848854
"\n",
855+
"trans1 = Affine2D().translate(-0.1, 0.0)\n",
856+
"trans2 = Affine2D().translate(+0.0, 0.0)\n",
857+
"\n",
849858
"firing_rates_mean_over_input_degrees = np.mean(firing_rates_mean_over_simulations, axis=0)\n",
850859
"firing_rates_std_over_input_degrees = np.mean(firing_rates_std_over_simulations, axis=0)\n",
851860
"\n",
@@ -871,9 +880,9 @@
871880
"axs[0].legend(loc='best')\n",
872881
"\n",
873882
"# Plot os_rel, os_paper_rel and ds_rel\n",
874-
"axs[1].errorbar(xticks, os_rel_mean_data, yerr=os_rel_std_data, label='OS rel')\n",
883+
"axs[1].errorbar(xticks, os_rel_mean_data, yerr=os_rel_std_data, label='OS rel', transform=trans1+axs[1].transData, elinewidth=2)\n",
875884
"# axs[1].errorbar(xticks, os_paper_rel_mean_data, yerr=os_paper_rel_std_data, label='OS Paper rel')\n",
876-
"axs[1].errorbar(xticks, ds_rel_mean_data, yerr=ds_rel_std_data, label='DS rel')\n",
885+
"axs[1].errorbar(xticks, ds_rel_mean_data, yerr=ds_rel_std_data, label='DS rel', transform=trans2+axs[1].transData, elinewidth=2)\n",
877886
"axs[1].set_xticks(xticks)\n",
878887
"axs[1].set_xticklabels(sst_soma_conn_weights)\n",
879888
"axs[1].set_xlabel('Scalar of SST->Soma connection')\n",

0 commit comments

Comments
 (0)