Desenhando uma seta em um diagrama SIRS usando TikZ

Desenhando uma seta em um diagrama SIRS usando TikZ

Estou tentando criar um diagrama SIRS (Suscetível-Infeccioso-Recuperado-Suscetível) parecido com este: insira a descrição da imagem aqui

Estou quase lá; Tenho tudo menos a seta superior indo de Recuperado para Suscetível. Aqui está meu código atual:

\documentclass[tikz, border=10pt]{standalone}
\usetikzlibrary{positioning, arrows.meta}

\begin{document}

\begin{tikzpicture}[
    node distance=2.5cm,
    arrow/.style={->, >=Stealth, thick},
    box/.style={draw, rectangle, rounded corners, minimum width=2cm, minimum height=1cm, align=center}
]

% Nodes
\node[box] (S) {Susceptible};
\node[box, right=of S] (I) {Infectious};
\node[box, right=of I] (R) {Recovered};

% Arrows
\draw[arrow] (S) -- node[above]{$\beta$} (I);
\draw[arrow] (I) -- node[above]{$\gamma$} (R);

\end{tikzpicture}

\end{document}

E aqui está o que meu código produz: insira a descrição da imagem aqui

Estou tendo problemas para desenhar a seta de Recuperado para Suscetível. Como faço para desenhar uma seta para que ela passe por cima das caixas sem sobrepô-las? Qualquer ajuda seria muito apreciada.

Responder1

Aqui estava minha tentativa ingênua original:

\node (A) [above=0.5cm of I] {$\delta$};
\draw[arrow] (R.north) |- (A.south) -| (S.north); 

A usuária Sandy G oferece uma opção melhor que é usar uma técnica que foi surpreendentemente difícil de pesquisar (acontece que pesquisar no Google --++é difícil); Encontrei este post ANTIGO (11 anos) que fala sobre isso:TiKz traço traço mais mais o que me levou à seção do manual TikZ13.4 Coordenadas Relativas e Incrementais

Podemos especificar uma coordenada relativa usando ++antes de uma nova coordenada de caminho para torná-la relativa à coordenada que veio antes dela no caminho. Do manual:

Você pode prefixar as coordenadas com ++ para torná-las “relativas”. Uma coordenada como ++(1cm,0pt) significa “1cm à direita da posição anterior, tornando esta a nova posição atual”. As coordenadas relativas são frequentemente úteis em contextos “locais”:

Isso torna tudo tão fácil quanto:

\draw[arrow] (R.north) -- ++(0,0.5) -| (S.north) node[above, pos=0.25] {$\delta$};

Isso desenhará um nó do norte do nó R, acima de 0,5, e então se conectará ao norte de S, mas fará uma curva acentuada para chegar lá (especificado por -|). Um nó é colocado 0,25 acima do caminho (que é simétrico) e preenchido com $\delta$.

MWE

Ambas as respostas darão aproximadamente a mesma imagem, mas achei que você gostaria de ver múltiplas perspectivas.

MWE:

\documentclass[tikz, border=10pt]{standalone}
\usetikzlibrary{positioning, arrows.meta}

\begin{document}

\begin{tikzpicture}[
    node distance=2.5cm,
    arrow/.style={->, >=Stealth, thick},
    box/.style={draw, rectangle, rounded corners, minimum width=2cm, minimum height=1cm, align=center}
    ]

    % Nodes
    \node[box] (S) {Susceptible};
    \node[box, right=of S] (I) {Infectious};
    \node[box, right=of I] (R) {Recovered};

    % Arrows
    \draw[arrow] (S) -- node[above]{$\beta$} (I);
    \draw[arrow] (I) -- node[above]{$\gamma$} (R);

    % My Naive Attempt
    % \node (A) [above=0.5cm of I] {$\delta$};
    % \draw[arrow] (R.north) |- (A.south) -| (S.north);

    % Sandy G's code
    \draw[arrow] (R.north) -- ++(0,.5) -| (S.north) node[above, pos=0.25] {$\delta$};
        
\end{tikzpicture}

\end{document}

informação relacionada