From a0d9e73e084da00e4669f8300d2b74160ba320df Mon Sep 17 00:00:00 2001 From: j-hartling Date: Thu, 4 Dec 2025 12:09:19 +0100 Subject: [PATCH] Finished fig_auditory_pathway.svg, pending feedback (all colors are temporary until color code is finalized). --- figures/BP_text.svg | 24 - figures/HP_text.svg | 24 - figures/LP_text.svg | 24 - figures/ascending_text.svg | 299 ++-- figures/bp_text.svg | 124 ++ figures/brain_text.svg | 369 ++-- figures/fig_auditory_pathway.svg | 1253 +++++++++++--- figures/fig_auditory_pathway_backup.svg | 2067 +++++++++++++++++++++++ figures/hp_text.svg | 129 ++ figures/integration_text.svg | 2 +- figures/interneurons_text.svg | 126 +- figures/k1_text.svg | 92 + figures/k2_text.svg | 96 ++ figures/k3_text.svg | 102 ++ figures/lp_text.svg | 114 ++ figures/mttg_sketch.svg | 1842 ++------------------ figures/out_text.svg | 77 + figures/receptors_text.svg | 144 +- figures/rectlp_text.svg | 147 ++ figures/theta1_text.svg | 80 + figures/theta2_text.svg | 84 + figures/theta3_text.svg | 90 + figures/thresh1_text.svg | 190 +++ figures/thresh2_text.svg | 194 +++ figures/thresh3_text.svg | 200 +++ figures/threshold_text.svg | 2 +- figures/tympanum_text.svg | 2 +- figures/w1_text.svg | 79 + figures/w2_text.svg | 83 + figures/w3_text.svg | 89 + python/save_latex_texts.py | 78 +- 31 files changed, 5907 insertions(+), 2319 deletions(-) delete mode 100644 figures/BP_text.svg delete mode 100644 figures/HP_text.svg delete mode 100644 figures/LP_text.svg create mode 100644 figures/bp_text.svg create mode 100644 figures/fig_auditory_pathway_backup.svg create mode 100644 figures/hp_text.svg create mode 100644 figures/k1_text.svg create mode 100644 figures/k2_text.svg create mode 100644 figures/k3_text.svg create mode 100644 figures/lp_text.svg create mode 100644 figures/out_text.svg create mode 100644 figures/rectlp_text.svg create mode 100644 figures/theta1_text.svg create mode 100644 figures/theta2_text.svg create mode 100644 figures/theta3_text.svg create mode 100644 figures/thresh1_text.svg create mode 100644 figures/thresh2_text.svg create mode 100644 figures/thresh3_text.svg create mode 100644 figures/w1_text.svg create mode 100644 figures/w2_text.svg create mode 100644 figures/w3_text.svg diff --git a/figures/BP_text.svg b/figures/BP_text.svg deleted file mode 100644 index c92f7ed..0000000 --- a/figures/BP_text.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - 2025-11-28T09:37:16.401430 - image/svg+xml - - - Matplotlib v3.10.5, https://matplotlib.org/ - - - - - - - - - - diff --git a/figures/HP_text.svg b/figures/HP_text.svg deleted file mode 100644 index c36809e..0000000 --- a/figures/HP_text.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - 2025-11-28T09:37:18.357034 - image/svg+xml - - - Matplotlib v3.10.5, https://matplotlib.org/ - - - - - - - - - - diff --git a/figures/LP_text.svg b/figures/LP_text.svg deleted file mode 100644 index d60f784..0000000 --- a/figures/LP_text.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - 2025-11-28T09:37:17.610001 - image/svg+xml - - - Matplotlib v3.10.5, https://matplotlib.org/ - - - - - - - - - - diff --git a/figures/ascending_text.svg b/figures/ascending_text.svg index e8c3b7f..f926247 100644 --- a/figures/ascending_text.svg +++ b/figures/ascending_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:18.783353 + 2025-12-04T10:31:28.947160 image/svg+xml @@ -22,8 +22,205 @@ + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + - + + + + + + + 2025-12-04T11:19:40.776076 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/brain_text.svg b/figures/brain_text.svg index 5d28d4b..a87d3cd 100644 --- a/figures/brain_text.svg +++ b/figures/brain_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:21.475727 + 2025-12-04T10:31:30.069736 image/svg+xml @@ -22,26 +22,45 @@ - - + + - - + + - + + + + + + + + + + + + + + - - - - - - - - + + + - - + + - - + - - - - - + + + + + + + diff --git a/figures/fig_auditory_pathway.svg b/figures/fig_auditory_pathway.svg index 8e25b02..1a9fc1a 100644 --- a/figures/fig_auditory_pathway.svg +++ b/figures/fig_auditory_pathway.svg @@ -24,36 +24,148 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#505050" inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.6231341" - inkscape:cx="-10.165519" - inkscape:cy="394.2989" + showgrid="true" + inkscape:zoom="2.8284271" + inkscape:cx="274.35743" + inkscape:cy="381.83767" inkscape:window-width="3840" inkscape:window-height="2040" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" - inkscape:current-layer="layer1"> + x="-293.22028" + y="142.68602" + transform="rotate(-90)" + inkscape:label="Tympanum" /> diff --git a/figures/fig_auditory_pathway_backup.svg b/figures/fig_auditory_pathway_backup.svg new file mode 100644 index 0000000..9ecbb59 --- /dev/null +++ b/figures/fig_auditory_pathway_backup.svg @@ -0,0 +1,2067 @@ + + + + diff --git a/figures/hp_text.svg b/figures/hp_text.svg new file mode 100644 index 0000000..2fbb908 --- /dev/null +++ b/figures/hp_text.svg @@ -0,0 +1,129 @@ + + + + + + + + 2025-12-04T11:19:41.333691 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/integration_text.svg b/figures/integration_text.svg index 8e37443..4f1ae29 100644 --- a/figures/integration_text.svg +++ b/figures/integration_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:20.146683 + 2025-12-04T10:31:29.690725 image/svg+xml diff --git a/figures/interneurons_text.svg b/figures/interneurons_text.svg index 762d979..72c3e85 100644 --- a/figures/interneurons_text.svg +++ b/figures/interneurons_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:18.440526 + 2025-12-04T10:31:28.555022 image/svg+xml @@ -23,7 +23,7 @@ - + - - + + - @@ -305,7 +276,94 @@ z - + + + + + + + + + + + + + + + + + + diff --git a/figures/k1_text.svg b/figures/k1_text.svg new file mode 100644 index 0000000..8838f6f --- /dev/null +++ b/figures/k1_text.svg @@ -0,0 +1,92 @@ + + + + + + + + 2025-12-04T11:19:39.781980 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/k2_text.svg b/figures/k2_text.svg new file mode 100644 index 0000000..bc3c137 --- /dev/null +++ b/figures/k2_text.svg @@ -0,0 +1,96 @@ + + + + + + + + 2025-12-04T11:19:40.118218 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/k3_text.svg b/figures/k3_text.svg new file mode 100644 index 0000000..7f0cab6 --- /dev/null +++ b/figures/k3_text.svg @@ -0,0 +1,102 @@ + + + + + + + + 2025-12-04T11:19:40.486083 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/lp_text.svg b/figures/lp_text.svg new file mode 100644 index 0000000..4cdb810 --- /dev/null +++ b/figures/lp_text.svg @@ -0,0 +1,114 @@ + + + + + + + + 2025-12-04T11:19:41.071198 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/mttg_sketch.svg b/figures/mttg_sketch.svg index bee3cff..d4c3041 100644 --- a/figures/mttg_sketch.svg +++ b/figures/mttg_sketch.svg @@ -25,16 +25,83 @@ inkscape:deskcolor="#505050" inkscape:document-units="mm" showgrid="false" - inkscape:zoom="2.587745" - inkscape:cx="492.9002" - inkscape:cy="682.83391" + inkscape:zoom="3.6596241" + inkscape:cx="305.76911" + inkscape:cy="621.9218" inkscape:window-width="3840" inkscape:window-height="2040" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer2" /> + width="85.800438" + height="18.964947" + x="20.163328" + y="156.06441" /> diff --git a/figures/out_text.svg b/figures/out_text.svg new file mode 100644 index 0000000..d456a4b --- /dev/null +++ b/figures/out_text.svg @@ -0,0 +1,77 @@ + + + + + + + + 2025-12-02T17:55:21.687713 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/receptors_text.svg b/figures/receptors_text.svg index 01bd109..a50233a 100644 --- a/figures/receptors_text.svg +++ b/figures/receptors_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:18.001971 + 2025-12-04T10:31:28.187050 image/svg+xml @@ -23,7 +23,7 @@ - + - - + + - @@ -313,7 +284,112 @@ z - + + + + + + + + + + + + + + + + + + + diff --git a/figures/rectlp_text.svg b/figures/rectlp_text.svg new file mode 100644 index 0000000..a49a912 --- /dev/null +++ b/figures/rectlp_text.svg @@ -0,0 +1,147 @@ + + + + + + + + 2025-12-04T11:19:38.258505 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/theta1_text.svg b/figures/theta1_text.svg new file mode 100644 index 0000000..01ab41a --- /dev/null +++ b/figures/theta1_text.svg @@ -0,0 +1,80 @@ + + + + + + + + 2025-12-04T11:19:41.615805 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/theta2_text.svg b/figures/theta2_text.svg new file mode 100644 index 0000000..493655f --- /dev/null +++ b/figures/theta2_text.svg @@ -0,0 +1,84 @@ + + + + + + + + 2025-12-04T11:19:41.936104 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/theta3_text.svg b/figures/theta3_text.svg new file mode 100644 index 0000000..a678382 --- /dev/null +++ b/figures/theta3_text.svg @@ -0,0 +1,90 @@ + + + + + + + + 2025-12-04T11:19:42.222070 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/thresh1_text.svg b/figures/thresh1_text.svg new file mode 100644 index 0000000..888359f --- /dev/null +++ b/figures/thresh1_text.svg @@ -0,0 +1,190 @@ + + + + + + + + 2025-12-04T11:19:43.495964 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/thresh2_text.svg b/figures/thresh2_text.svg new file mode 100644 index 0000000..8b9316d --- /dev/null +++ b/figures/thresh2_text.svg @@ -0,0 +1,194 @@ + + + + + + + + 2025-12-04T11:19:43.783599 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/thresh3_text.svg b/figures/thresh3_text.svg new file mode 100644 index 0000000..59c16d9 --- /dev/null +++ b/figures/thresh3_text.svg @@ -0,0 +1,200 @@ + + + + + + + + 2025-12-04T11:19:44.183173 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/threshold_text.svg b/figures/threshold_text.svg index fccf65a..d9336d2 100644 --- a/figures/threshold_text.svg +++ b/figures/threshold_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:19.227586 + 2025-12-04T10:31:29.291752 image/svg+xml diff --git a/figures/tympanum_text.svg b/figures/tympanum_text.svg index 97baacb..0b32cb4 100644 --- a/figures/tympanum_text.svg +++ b/figures/tympanum_text.svg @@ -6,7 +6,7 @@ - 2025-11-28T10:11:16.919801 + 2025-12-04T10:31:26.913649 image/svg+xml diff --git a/figures/w1_text.svg b/figures/w1_text.svg new file mode 100644 index 0000000..d258c0b --- /dev/null +++ b/figures/w1_text.svg @@ -0,0 +1,79 @@ + + + + + + + + 2025-12-04T11:19:42.518866 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/w2_text.svg b/figures/w2_text.svg new file mode 100644 index 0000000..faac34f --- /dev/null +++ b/figures/w2_text.svg @@ -0,0 +1,83 @@ + + + + + + + + 2025-12-04T11:19:42.854448 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figures/w3_text.svg b/figures/w3_text.svg new file mode 100644 index 0000000..c3113b4 --- /dev/null +++ b/figures/w3_text.svg @@ -0,0 +1,89 @@ + + + + + + + + 2025-12-04T11:19:43.143567 + image/svg+xml + + + Matplotlib v3.10.5, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/save_latex_texts.py b/python/save_latex_texts.py index 62fdc0e..55ac689 100644 --- a/python/save_latex_texts.py +++ b/python/save_latex_texts.py @@ -9,22 +9,20 @@ plt.rc('text.latex', preamble=r'\usepackage{amsmath}') # Settings: fs_chart = 70 +fs_lines = 75 fs_legend = 40 show_figs = True grid_props = dict(left=0, right=1, top=1, bottom=0) fig_props = { - 'figsize': (3, 3), 'facecolor': 'none', 'edgecolor': 'none', 'frameon': False, - # 'rasterized': True, } ax_props = { 'facecolor': 'none', 'frame_on': False, - # 'rasterized': True, } text_props = { @@ -33,40 +31,60 @@ text_props = { 'y': 0.5, 'ha': 'center', 'va': 'center', - # 'rasterized': True, } # Targets: texts = { - 'filt': (r'$x_{\text{filt}}$', fs_chart), - 'env': (r'$x_{\text{env}}$', fs_chart), - 'db': (r'$x_{\text{dB}}$', fs_chart), - 'envdb': (r'$\begin{array}{c}x_{\text{env}}\\x_{\text{dB}}\end{array}$', fs_chart), - 'adapt': (r'$x_{\text{adapt}}$', fs_chart), - 'conv1': (r'$c_1$', fs_chart), - 'conv2': (r'$c_2$', fs_chart), - 'conv3': (r'$c_3$', fs_chart), - 'bi1': (r'$b_{1, \Theta}$', fs_chart), - 'bi2': (r'$b_{2, \Theta}$', fs_chart), - 'bi3': (r'$b_{3, \Theta}$', fs_chart), - 'feat1': (r'$f_{1, \Theta}$', fs_chart), - 'feat2': (r'$f_{2, \Theta}$', fs_chart), - 'feat3': (r'$f_{3, \Theta}$', fs_chart), - 'BP': ('BP', fs_chart), - 'LP': ('LP', fs_chart), - 'HP': ('HP', fs_chart), - 'tympanum': ('Tympanal\nMembrane', fs_legend), - 'receptors': ('Receptor\nNeurons', fs_legend), - 'interneurons': ('Local\nInterneurons', fs_legend), - 'ascending': ('Ascending\nNeurons', fs_legend), - 'threshold': ('Threshold\nNonlinearity', fs_legend), - 'integration': ('Temporal\nAveraging', fs_legend), - 'brain': ('Central\nBrain', fs_legend), + # CIRCUIT ELEMENTS: + # 'filt': (r'$x_{\text{filt}}$', fs_chart, (3, 3)), + # 'env': (r'$x_{\text{env}}$', fs_chart, (3, 3)), + # 'db': (r'$x_{\text{dB}}$', fs_chart, (3, 3)), + # 'envdb': (r'$\begin{array}{c}x_{\text{env}}\\x_{\text{dB}}\end{array}$', fs_chart, (3, 3)), + # 'adapt': (r'$x_{\text{adapt}}$', fs_chart, (3, 3)), + # 'conv1': (r'$c_1$', fs_chart, (3, 3)), + # 'conv2': (r'$c_2$', fs_chart, (3, 3)), + # 'conv3': (r'$c_3$', fs_chart, (3, 3)), + # 'bi1': (r'$b_{1, \Theta}$', fs_chart, (3, 3)), + # 'bi2': (r'$b_{2, \Theta}$', fs_chart, (3, 3)), + # 'bi3': (r'$b_{3, \Theta}$', fs_chart, (3, 3)), + # 'feat1': (r'$f_{1, \Theta}$', fs_chart, (3, 3)), + # 'feat2': (r'$f_{2, \Theta}$', fs_chart, (3, 3)), + # 'feat3': (r'$f_{3, \Theta}$', fs_chart, (3, 3)), + # 'out': (r'$\hat{y}$', fs_chart, (3, 3)), + + # CIRCUIT OPERATIONS: + 'rectlp': (r'$\lvert\cdot\lvert,h_{\text{LP}}$', fs_lines, (3, 3)), + 'log': (r'$\text{log}$', fs_lines, (3, 3)), + 'rectlplog': (r'$\begin{array}{c}||,h_{\text{LP}}\\\text{log}\end{array}$', fs_lines, (3, 3)), + 'k1': (r'$k_1$', fs_lines, (3, 3)), + 'k2': (r'$k_2$', fs_lines, (3, 3)), + 'k3': (r'$k_3$', fs_lines, (3, 3)), + 'bp': (r'$h_{\text{BP}}$', fs_lines, (3, 3)), + 'lp': (r'$h_{\text{LP}}$', fs_lines, (3, 3)), + 'hp': (r'$h_{\text{HP}}$', fs_lines, (3, 3)), + 'theta1': (r'$\Theta_1$', fs_lines, (3, 3)), + 'theta2': (r'$\Theta_2$', fs_lines, (3, 3)), + 'theta3': (r'$\Theta_3$', fs_lines, (3, 3)), + 'w1': (r'$\omega_1$', fs_lines, (3, 3)), + 'w2': (r'$\omega_2$', fs_lines, (3, 3)), + 'w3': (r'$\omega_3$', fs_lines, (3, 3)), + 'thresh1': (r'$H(c_1-\Theta_1)$', fs_lines, (3, 3)), + 'thresh2': (r'$H(c_2-\Theta_2)$', fs_lines, (3, 3)), + 'thresh3': (r'$H(c_3-\Theta_3)$', fs_lines, (3, 3)), + + # LEGEND ELEMENTS: + # 'tympanum': ('Tympanal\nMembrane', fs_legend, (3, 3)), + # 'receptors': ('Receptor\nNeuron\nPopulation', fs_legend, (3, 3)), + # 'interneurons': ('Local\nInterneuron\nPopulation', fs_legend, (3, 3)), + # 'ascending': ('Individual\nAscending\nNeurons', fs_legend, (3, 3)), + # 'threshold': ('Threshold\nNonlinearity', fs_legend, (3, 3)), + # 'integration': ('Temporal\nAveraging', fs_legend, (3, 3)), + # 'brain': ('Weighting\nand\nReadout', fs_legend, (3, 3)), } # Save each target string: -for name, (text, fs) in texts.items(): - fig, ax = plt.subplots(1, 1, gridspec_kw=grid_props, **fig_props) +for name, (text, fs, size) in texts.items(): + fig, ax = plt.subplots(figsize=size, gridspec_kw=grid_props, **fig_props) ax.set(**ax_props) ax.axis('off') ax.text(s=text, fontsize=fs, **text_props)