487

Task

Show off your best scientific illustration !

The main purpose of this question is to share beautiful scientific pictures, preferably with an educational aspect.


Content

Your post must contain a nice picture and the associated code. One can post several pictures, but it must be done in different replies. Of course, it must be done with LaTeX & Friends : the post must start with a short sentence to present the language that you chose (TikZ, Asymptote ...) and the main packages that helped you to make the picture. Don't hesitate to add comments.


Reward

The satisfaction to share without expecting a reward :)

Ok ... 300 points reputation bounty for the best up-voted post until the 15th of Feb.


Related links

I'll contact Texample.net webmaster to see if he is interested to share the best illustrations, with the participant's agreement of course.

Contest: Show Off Your Skillz in TeX & Friends

  • 14
    that's easy :p dx.doi.org/10.1007/978-3-642-36763-2_46 – percusse Feb 5 '14 at 8:43
  • 17
    I'll be glad if Till Tantau himself decide to participate, but that would be a bit unfair ... :) – Thomas Feb 5 '14 at 8:47
  • 6
    I'm surprised this question wasn't closed already by people like this, on the grounds that it's not a question. Or does that apply only to SO, not to tex.SE? – Dan Dascalescu Feb 7 '14 at 0:06
  • 7
    @DanDascalescu: Here on TeX.SX the mood is much more laazyyy. Think alone the existence of a tag big-list (click on it). – Speravir Feb 7 '14 at 0:22
  • 5
    A fantastic proposition... Such "competitions" should be held more often... – Aashutosh Feb 7 '14 at 5:51

64 Answers 64

6

I designed the following animated TikZ drawing to illustrate complex numbers. It shows the complex plain with unit cycle with the complex unit pointer and the protections to the real and imaginary axes.

Here I use my standalone class with the tikz option to create multiple PDF pages, one per foreach-loop iteration which are then manually converted to images and turned into an animated GIF.

Animated Result


\documentclass[border=5,varwidth,tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{nicefrac}
\usepackage{amsmath}

\usepackage{tikz}
%\usetikzlibrary{calc}
\usetikzlibrary{backgrounds}
\usepackage{nicefrac}
\newcommand\half{\hbox{$\nicefrac12$}}
\newcommand\onehalf{\hbox{$\nicefrac32$}}
\begin{document}

\foreach \m in {0,1,...,359}
{
\pgfmathsetmacro\p{\m/180*pi}
%
\begin{tikzpicture}

\def\xs{2.}
\def\xc{\xs}
\def\yc{-3.}

\begin{scope}[shift={(0, 0)}]

\begin{scope}[semithick,->,>=stealth]
\draw (0, -1.3) -- (0, 1.3);
\draw (-1.3, 0) -- (1.3, 0);
\end{scope}
\begin{scope}[font=\tiny, inner sep=2pt]
\draw (-0.05, 1.) -- node [above left] {$1$} node [above right,orange] {$\half\pi$} coordinate (Y1) (0.05, 1.);
\draw (-0.05, -1.) -- node [below left] {$-1$} node [below right,orange] {$\onehalf\pi$} coordinate (YM1) (0.05, -1.);
\draw (1, -0.05) -- node [below right] {$1$} node [above right,orange] {$0 | 2\pi$} coordinate (X1) (1, 0.05) ;
\draw (-1, -0.05) -- node [below left] {$-1$} node [above left,orange] {$\pi$} coordinate (XM1) (-1, 0.05);
\end{scope}

\begin{scope}[blue!50!green]
\draw (0, 0) circle (1);
\end{scope}

\end{scope}

\begin{scope}[shift={(0, {\yc})}]
\draw (-1.2, -1.2) -- (1.2, 1.2);
\end{scope}

\begin{scope}[shift={({\xs}, 0)}]

\begin{scope}[semithick,->,>=stealth]
\draw (0, -1.3) -- (0, 1.3);
\draw (-0.04*pi, 0) -- (2.05*pi, 0);
\end{scope}
\begin{scope}[font=\tiny]
\coordinate (S0) at (0,0); 
\draw (-0.05, 1.)    -- node [above left] {$1$}    coordinate (S1)     (0.05, 1.);
\draw (-0.05, -1.)   -- node [below left] {$-1$}  coordinate (SM1)   (0.05, -1.);
\draw (pi/2, 0.05)   -- node [below] {$\displaystyle\half\pi$}    +(0.0, -0.1);
\draw (pi, 0.05)     -- node [below] {$\pi$}      +(0.0, -0.1);
\draw (pi*3/2, 0.05) -- node [below] {$\onehalf\pi$}   +(0.0, -0.1);
\draw (2*pi, 0.05)   -- node [below] {$2\pi$}     +(0.0, -0.1);
\end{scope}

\begin{scope}[blue]
\draw (0, 0) 
 \foreach \n in {0,...,100}  { 
    -- ({\n*(0.02*pi)}, {sin(\n*0.02*pi r)})
};
\end{scope}

\end{scope}

\begin{scope}[shift={({\xc}, {\yc})}]

\begin{scope}[semithick,->,>=stealth]
\draw (0, -1.3) -- (0, 1.3);
\draw (-0.04*pi, 0) -- (2.05*pi, 0);
\end{scope}
\begin{scope}[font=\tiny]
\coordinate (C0) at (0,0);
\draw (-0.05, 1.)    -- node [above left] {$1$} coordinate (C1)   (0.05, 1.);
\draw (-0.05, -1.)   -- node [below left] {$-1$} coordinate (CM1)  (0.05, -1.);
\draw (pi/2, 0.05)   -- node [below] {$\half\pi$}    +(0.0, -0.1);
\draw (pi, 0.05)     -- node [below] {$\pi$}      +(0.0, -0.1);
\draw (pi*3/2, 0.05) -- node [below] {$\onehalf\pi$}   +(0.0, -0.1);
\draw (2*pi, 0.05)   -- node [below] {$2\pi$}     +(0.0, -0.1);
\end{scope}

\begin{scope}[green]
\draw (0, 1) 
 \foreach \n in {0,...,100}  { 
    -- ({\n*(0.02*pi)}, {cos(\n*0.02*pi r)})
};
\end{scope}
\end{scope}

\begin{scope}[on background layer={gray, help lines}]
  \draw (X1) |- (C1) -- +(2.08*pi, 0);
  \draw (XM1) |- (CM1)  -- +(2.08*pi, 0);
  \draw (Y1) -- (S1) -- +(2.08*pi, 0);
  \draw (YM1) -- (SM1)  -- +(2.08*pi, 0);
  \draw (YM1) |- (C0);
  \draw (XM1) -- (S0);
\end{scope}

\begin{scope}
\begin{scope}[on background layer]
 \fill[orange!50!yellow] (0,0) -- (.5,0) arc [rotate=-90, start angle=0, end angle={\p r}, radius=.5];
\end{scope}
 \coordinate (P) at ({\p r}:1);
 \coordinate (PM) at (-{\p r}:1);
 \coordinate (PR) at ({(pi-(\p)) r}:1);
 \coordinate (S) at ({\xs+\p}, {sin(\p r)});
 \coordinate (C) at ({\xc+\p}, {\yc+cos(\p r)});
 \draw [->,>=stealth,thick,red,line cap=round] (0,0) -- %node [pos=1, auto=right, font=\scriptsize] {$e^{j\phi}$} 
(P);
\iffalse
 \draw [->,>=stealth,black!40] (0,0) -- %node [pos=1, auto=right, font=\scriptsize] {$e^{-j\phi}$}
 (PM) ;
 \draw [->,>=stealth,black!20] (0,0) -- %node [pos=1, auto=right, font=\scriptsize] {$-e^{-j\phi}$} 
(PR) ;

 \draw [thin,black!30] (P) -- (PM);
 \draw [thin,black!10] (P) -- (PR);
\fi
\draw [blue!50!black] (P) -- (S) node [fill, circle, inner sep=.5pt] {};
\draw [green!50!black] (P) |- (C) node [fill, circle, inner sep=.5pt] {};;
\end{scope}

\end{tikzpicture}
}

\end{document}
  • 1
    I just love the unit circle. I found it magical when I first learned trig many decades ago. – Steven B. Segletes Dec 21 '18 at 11:34
  • 2
    @StevenB.Segletes: While in school I always wondered how people came to the trigonometric identities like sin(α + β) = sin(α) cos(β) + cos(α) sin(β) or sin(2x) = 2 sin(x) cos(x), as I did not know a why to deduce them. Then after learning complex numbers everything was possible and understandable. – Martin Scharrer Dec 21 '18 at 11:40
3

PSTricks in action!

\documentclass[pstricks,border=10mm,12pt]{standalone}
\usepackage{pst-eucl,pst-circ}
\psset
{
    dipolestyle=zigzag,
    labelangle=0,
    labeloffset=-.9,
    intensitylabeloffset=-.4,
    tensionstyle=pm,
    tensionoffset=.9,
    tensionlabeloffset=.9,
    %tensioncolor=red,
    %tensionlabelcolor=blue,
}
\begin{document}
\begin{pspicture}[showgrid=none](12,-12)
    \pstGeonode[PosAngle={135,90,45,0,-45,-90,-135,180,45}]
        (2,-2){A}
        (6,-2){B}
        (10,-2){C}
        (10,-6){D}
        (10,-10){E}
        (6,-10){F}
        (2,-10){G}
        (2,-6){H}
        (6,-6){I}
    %
    \resistor[intensitylabel=$i_1$,tensionlabel=$V_{HA}$](H)(A){$R_1$}
    \resistor[tensionlabel=$V_{AB}$](A)(B){$R_2$}
    \vdc[tensionlabel=$V_{BC}$](B)(C){$E_1$}
    \resistor[tensionlabel=$V_{CB}$](C)(D){$R_3$}
    %
    \resistor[intensitylabel=$i_2$,tensionlabel=$V_{HI}$](H)(I){$R_4$}
    \vdc[tensionlabel=$V_{ID}$](I)(D){$E_2$}
    %
    \resistor[intensitylabel=$i_3$,tensionlabel=$V_{HG}$](H)(G){$R_5$}
    \newSwitch[ison=true,tensionlabel=$V_{GF}$](G)(F){$S_2$}
    \wire(F)(E)
    \resistor[tensionlabel=$V_{DE}$,dipoleconvention=generator](E)(D){$R_6$}
    %
    \vdc[tensionlabel=$V_{FI}$,dipoleconvention=generator](I)(F){$E_3$}
    \newSwitch[intensitylabel=$i_4$,tensionlabel=$V_{BI}$,ison=false](B)(I){$S_1$}  
\end{pspicture}
\end{document}

enter image description here

3

Visualization of CaMKII/PP1 pathway in a spine of a neuron.

CaMKII/PP1 pathway - Cell signalling

Here is standalone document.

% lualatex --shell-escape 
\RequirePackage{luatex85}
\documentclass[crop,tikz]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{calc,graphs,graphdrawing,fit,positioning}
\usetikzlibrary{decorations,decorations.footprints,decorations.shapes}
\usetikzlibrary{shapes,arrows,arrows.meta}
\usegdlibrary{layered}
\usepackage{xstring}
\pgfplotsset{compat=1.15}

\begin{document}

\pgfmathsetseed{10}


\newcommand{\tstar}[5]{% x, y, inner radius, outer radius, tips,
    \pgfmathsetmacro{\starangle}{360/#5}
    \draw[draw=none,fill=blue!40] [xshift=#1cm,yshift=#2cm](0:#3)
    \foreach \x in {1,...,#5}
    { -- (\starangle/2+\x*\starangle-\starangle/2:#4) -- (#4+\x*\starangle:#3)
    }
    -- cycle;
}

\newcommand{\TSTAR}[3]{% pos, radius, tips,
    \node[star,star points=#3,star point ratio=0.3,fill=blue!40,minimum
    size=#2cm,] (inner#3) at (#1) {};
}


\newcommand{\CAMKIIRING}[6] { % name, x, y, indices_of_red_balls, size, tips 
    % get the theta for given number of subunits.
    \begin{scope}[ ]
        \pgfmathsetmacro{\theta}{360/#6};
        \pgfmathsetmacro{\r}{0.5*#5/sin(\theta/2)};
        \def\fitlist{};
        \foreach \i in {1,...,#6}
        {
            \IfSubStr {#4} {\i}
            {
                \node[ball color=red,circle,shading=ball,minimum size=#5cm] (r\i) at
                ($(\i*\theta:\r cm)+(#2,#3)$) {};
            }
            {
                \node[draw=none,ball color=blue,circle,minimum size=#5cm](r\i) at
                ($(\i*\theta:\r cm)+(#2,#3)$) {}; 
            }
            \xdef\fitlist{\fitlist(r\i)};
        };
        % inner subunit.

        \tstar{#2}{#3}{\r/5}{\r}{#6};
        \node[circle,fit=\fitlist,] (#1) {};
        %\node[] at (#2,#3) {#1};
    \end{scope}
}

\newcommand{\CAMKII}[5] { % name, position, indices_of_red_balls, size, tips 
    % get the theta for given number of subunits.
    \node (#1) at (#2) {};
    \begin{scope}[ ]
        \pgfmathsetmacro{\theta}{360/#5};
        \pgfmathsetmacro{\r}{0.5*#4/sin(\theta/2)};
        \def\fitlist{};

        \node[draw=none] (#1_root) at (#1) {};

        \foreach \i in {1,...,#5}
        {
            \IfSubStr {#3} {\i}
            {
                \node[draw=none,inner sep=0,ball color=red,circle,minimum size=#4cm] (r\i) at
                ($(\i*\theta:\r cm)+(#1_root)$) {};
            }
            {
                \node[draw=none,ball color=blue,inner sep=0,circle,minimum size=#4cm](r\i) at
                ($(\i*\theta:\r cm)+(#1_root)$) {}; 
            }
            \xdef\fitlist{\fitlist(r\i)};
        };
        % inner subunit.
        \TSTAR{#1_root.center}{0.5*\r}{#5};
        \node[fit=\fitlist,circle,inner sep=0] (#1) {};
    \end{scope}
}

\newcommand{\CACAM}[3] { % name, (x, y), size 
    % A node is created with given name which fit all others.
    \node (#1) at (#2) { };
    \edef\name{#1_center}
    \begin{scope}[]
        \pgfmathsetmacro{\car}{#3/2}
        \node[star,star points=4,fill=red,minimum size=#3 cm,inner sep=0pt] 
            (\name) at (#1) {};

        \foreach \x in {1,...,4} 
        {
            \pgfmathsetmacro{\theta}{360/4*\x};
            \node[inner sep=0pt,ball color=yellow,circle,minimum size=\car cm] 
            (ca\x) at ($(#2)+(\theta:\car cm)$) {};
        }
        \node[circle,inner sep=0,fit=(ca1) (ca2) (ca3) (ca4) (\name)] (#1)  {};
    \end{scope}
}

\newcommand{\CAM}[3] { % name, (x, y), size 
    \node (#1) at (#2) { };
    \begin{scope}[]
        \pgfmathsetmacro{\car}{#3/2}
        \node[star,star points=4,star point ratio=2
            , fill=red,minimum size=#3 cm,inner sep=0pt] 
            (rcam) at (#1) {};
    \end{scope}
}

% NMDA receptors and other.
% \NMDAOLD}{(x,y)}{width}{gap}{rotation}
\newcommand{\NMDAOLD}[5] {
    \pgfmathsetmacro\rwidth{#3/5.0}
    \pgfmathsetmacro\gap{0.1+#4}

    \edef\ang{#5}
    \node[minimum height=#3 cm,minimum width=\gap cm] (#1) at #2 {};
    \begin{scope}[rotate around={(\ang:#2)}]
        \foreach \xshift/\name in {\gap/#1_right,-\gap/#1_left}
        {
            \node[draw=blue,fill=red!20,rectangle, inner sep=0pt
                , decorate, decoration={random steps,amplitude=1pt,segment length=1pt}
                , minimum height=#3cm ,minimum width=\rwidth cm
            ] (\name) at ([xshift=\xshift cm]#1.east) {};
        }
    \end{scope}
}

% \AMPA{name}{(x0,y0)}{height}{gap or opening size}{rotation}
\newcommand{\AMPA}[5] {
    \pgfmathsetmacro{\rwidth}{#3/5.0}
    \pgfmathsetmacro\rwidth{#3/5.0}
    \pgfmathsetmacro\gap{0.1+#4}
    \edef\ang{#5}

    \node (#1) at #2 {};
    \begin{scope}[rotate around={(\ang:#2)}]
        \foreach \i in {\gap,0}
        {
            \node[minimum height=#3 cm,minimum width=\gap cm
                ,transform shape   % necessary when within scope
                ,cylinder,fill=red
            ] (#1_\i) at ([yshift=\i cm]#1) {};
        }
    \end{scope}
}

% \CA{label}{coordinate}{label}
\newcommand{\CA}[3] {
    \node (#1) at #2 {};
    \node[shading=ball,circle,ball color=yellow,inner sep=0,minimum size=2 mm]
        at (#1) { };
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Chemical equilibrium arrow 

\newdimen\arrowsize
\newdimen\mylw
\pgfkeys{/my arrows/chemeq/.style={draw,thick,double distance=3pt,onearc-onearc}}
\pgfkeys{/my arrows/size/.code={\pgfsetarrowoptions{onearc}{#1}}}
\def\myalw{1pt}
\pgfarrowsdeclare{onearc}{onearc}{%
  \mylw=\myalw
  \pgfarrowsleftextend{-\pgfgetarrowoptions{onearc}-.5\mylw}
  \pgfarrowsrightextend{1pt}
}{%
  \pgfsetdash{}{0pt}
  \mylw=\pgflinewidth
  \pgfsetlinewidth{\myalw}
  \advance\arrowsize by.5\pgflinewidth
  \pgfpathmoveto{\pgfpoint{-\pgfgetarrowoptions{onearc}}{-\pgfgetarrowoptions{onearc}-.5\mylw}}%
  \pgfpatharc{180}{90}{\pgfgetarrowoptions{onearc}}
  \pgfusepathqstroke
}


%  \PHOSPHO{name}{location}
\newcommand\PHOSPHO[2]
{
    \node[circle,fill=yellow,inner sep=0pt] (#1) at (#2) {\tiny P};
}



\begin{tikzpicture}[scale=1, every node/.style={},% node distance=5mm
    ]

    % Grid 
    %\node (origin) at (0,0) {+};
    \draw[thin,step=1,gray!10] (-10,-10) grid (5,5);

    % Draw synapse.
    \draw[color=blue,very thick] plot[smooth] coordinates { 
            (-8,-8) (-5,-8.2) (-3, -8)
            (-3, -4) (-7, -2) (-7,1) 
            (0, 1) (3,1) (2.5,-3) 
            (-1,-4) (-1,-8) (3,-8)
        };
    \node[ ] at (-5,-10) {Dendrite};


    % \draw[blue,very thick] plot[smooth] coordinates { 
    %         (-8, -15) (-5, -15.5) (0,-15.1) (3, -15)
    %     };

    % draw PSD.
    \path[fill=blue!50,decorate,decoration={random steps}]
        (-6,1.2) -- (-5,1.2) -- (-4,1.2) -- (0,1.1) -- (3,1.2) 
        --  (1,0) -- (0,0) -- (-3,0) -- (-5,0) -- cycle;

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % A lot of calcium outside  and calmodulin inside.
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \foreach \i/\x/\y in {1/-7/2,2/-6.5/2.1,3/-6.2/1.9,4/-6.8/2.2}
    {
        \CA{ca\i}{(\x,\y)}{};
    }



    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Draw channels.
    % VDCC or voltage dependant calcium channel opens when membrane potential at
    % spine goes above threshold voltage of channel.
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \coordinate (vdcc) at (-6,1);
    \node[draw=blue,rotate=110,cylinder,fill=white,label=VDCC,minimum height=7 mm] 
        at (vdcc) {};

    \NMDAOLD{n0}{(-5,1)}{1}{0.05}{-10};
    \node[above=of n0] {NMDA};

    \CA{canmda}{(n0.east)}{};

    \NMDAOLD{n1}{(1,1)}{1}{0.1}{10};

    % Attach a CaMKII below it.
\CAMKII{camkiiPSD}{[shift=(-135:5 mm)]n1}{1,2,3,4,5,6}{0.2}{6};

    \node[left=of n1,yshift=-5 mm,label=PP1,circle,fill=red] (pp1) {};
    \draw[-triangle 90 reversed] (pp1) edge[out=-0,in=180] (camkiiPSD);

    % CaMKII partial.
    \node[left=of camkiiPSD,shift=(60:-2cm)] (camkii) {};
    \CAMKII{camkiiPartial}{[xshift=0 cm]camkii}{1,2,5}{0.2}{6}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Calcium inflow  
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % Calcium can flow through VDCC
    \CA{ca0}{(vdcc)}{};
    \CACAM{cacam0}{-5,0}{0.3}
    \CAM{cam0}{-6.5,0}{0.3}

    \draw[-*,very thick] (cam0) to[midway] node (binding) {} (cacam0);
    \draw[->] (ca0) to[] (binding);

    \foreach \i in {1,2,...,5}
    {
        \coordinate (cacam) at (rnd*3-6,rnd-1)  {};
        %\CACAM{cacam\i}{cacam}{0.3}
    }


    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Channels 
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \node[below right=of cacam0] (can) {CaN};
    \node[below=of can] (i1p) {I1P/I2P};
    \node[above right=of i1p,xshift=5 mm] (ppx) {PP1/PP2};
    \node[left=of i1p,rotate=-90] (pka) {PKA};

     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     % Transportation of AMPA.
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \draw[->,decorate,decoration={shape backgrounds,shape=dart,shape size=2 mm}] 
        (camkiiPartial) -- (camkiiPSD);

    %\draw[-*] (ca0) edge[ ]  (cacam0);

    \draw[-*] (cacam0) edge[ ] (can);
    \draw[-triangle 90 reversed] (can) edge[ ] (i1p);
    \draw[-triangle 90 reversed] (i1p) edge[ ] (ppx);
    \draw[-triangle 90 reversed] (pka) edge[ ] (i1p);

    % Phosphorylation
    \draw[-*] (cacam0) edge[ ] node[midway] (phospho) {} (camkiiPartial);
    \draw[-latex] (camkiiPartial.north) edge[out=90,in=120] (phospho);
    \draw[-triangle 90 reversed] (ppx) edge[] (camkiiPartial);
    \draw[-triangle 90 reversed] (cacam0) edge[bend right] (pka.west);

    %% Transportation of AMPA channels.
    \AMPA{a0}{(2.8,-2)}{1}{0.1}{10};
    \CAMKII{camkiiCyt1}{[shift=(135:2 cm)]a0}{1,2,3,4,5,6,7}{0.2}{7}
    \draw[-triangle 90 reversed] (ppx) edge[] (camkiiCyt1);

    % CaMKII help translocating AMPA channels via Ras/MaP-K. 
    \AMPA{a1}{(-2,0.8)}{1}{0.15}{90};

    % CaMKII phosphorylated AMPA thus increasing their conductance.
    \CAMKII{camkiiCyt2}{[shift=(-25:0.7 cm)]n0}{1,2,3,4,5,6,7}{0.2}{7}

    \node at ([yshift=10 mm]a1) {AMPA};
    \AMPA{a2}{(2.8,1)}{1}{0.1}{45};
    \draw[-*] (camkiiCyt2) edge[bend right] (a1);

    \draw[->,very thick
            ,decorate, decoration={footprints,foot length=10 pt,stride length=15pt}
            ] ($(a0)+(0.5,.5)$)  to[bend right] node[below,sloped,midway,yshift=-5 mm] (transport) 
            {\small MAPK} ([xshift=3mm]a2);

    \draw[-*] (camkiiCyt1) -- (transport);


\end{tikzpicture}    
\end{document}
2
  • I just found out about this question today (January 2019) because it was listed in the weekly SE newsletter.
  • There are very impressive diagrams and drawings that there are to marvel at.
  • I add some (in comparison very simple) diagrams and drawings of my own.
  • They are all taken from my Ph.D. thesis and are made by tikz or pgfplots (one is an annotated CAD drawing which was generated with an third-party software).

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

  • Thanks for your interesting contributions. To maintain the educational aspect of this post, it would be interesting if you could make the source codes of the images available. – Thomas Jan 18 at 9:06
  • @Thomas I linked the document template. It will need some time for me to provide the code, since it is distributed throughout my thesis in different files for style, data and so on (which was finished some years ago). Yes, I understand your request. I plan to do it, but not very shortly. – Dr. Manuel Kuehner Jan 18 at 13:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.