使用 TikZ 进行神经科学图形

使用 TikZ 进行神经科学图形

有人知道使用 tikz 显示神经科学示意图的软件包吗?例如,我想在马尔可夫过程图旁边放置一个光栅图,以帮助解释如何使用马尔可夫模型来模拟神经元的放电。

我知道可以通过在 tikz 图片中加入神经活动图像来实现这一点。但是,我想知道是否有一种只能使用 tikz 的解决方案。

下面是我在 PPT 中制作的版本,诚然,这个版本比较业余。光栅图指的是水平的刻度线。每个刻度都是相同的,标记着神经元发射的位置。

我知道如何使用 tikz 中的自动机库来制作状态图。我想知道是否有比使用 for 循环的蛮力方法更简单的方法来绘制许多水平线。

结合栅格图和马尔可夫链的幻灯片草图

50 毫秒的样本神经数据(神经元激发的时间,以毫秒为单位):

 2,10,12,14,15,20,25,34,35,48, 49

答案1

对于神经元活动部分:

代码

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{arrows}
\usepackage{xifthen}

\begin{document}

\begin{tikzpicture}
%\pgfmathsetseed{42}% or some other number
\foreach \y [count=\c] in {-0.5,-1,...,-2.5}
    {   \node[right] at (15.2,\y+0.1) {\scriptsize Subject \c};
        \foreach \x in {1,...,300}
        {   \pgfmathtruncatemacro{\drawbool}{rand-0.7 > 0 ? 1 : 0}
            \ifthenelse{\drawbool=1}
                {   \fill (\x/20,\y) rectangle (\x/20+0.05,\y+0.3);}
                {}
        }
    }

    \draw[-stealth] (0,0) -- (15.5,0);
    \node[right] at (15.5,0.2) {t in ms};
    \foreach \x [evaluate=\x as \v using int(20*\x)] in {0,...,15}
    {   \draw (\x,-0.05) -- (\x,0.05) node[above] {\v};
    }
\end{tikzpicture}

\end{document}

结果

在此处输入图片描述

相关内容