Estoy intentando crear un diagrama SIRS (Susceptible-Infeccioso-Recuperado-Susceptible) que se vea así:
Ya casi estoy allí; Tengo todos menos la flecha superior que va de Recuperado a Susceptible. Aquí está mi código actual:
\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}
Y esto es lo que produce mi código:
Tengo problemas para dibujar la flecha de Recuperado a Susceptible. ¿Cómo dibujo una flecha para que pase por encima de los cuadros sin superponerlos? Cualquier ayuda sería muy apreciada.
Respuesta1
Aquí estaba mi ingenuo intento original:
\node (A) [above=0.5cm of I] {$\delta$};
\draw[arrow] (R.north) |- (A.south) -| (S.north);
El usuario Sandy G ofrece una mejor opción: utilizar una técnica que fue sorprendentemente difícil de investigar (resulta que buscar en Google --++
es difícil); Encontré esta publicación ANTIGUA (11 años) que habla de ello:TiKz guión guión más más
lo que me llevó a la sección del manual de TikZ.13.4 Coordenadas relativas e incrementales
Podemos especificar una coordenada relativa usando ++
antes de una nueva coordenada de ruta para hacerla relativa a la coordenada anterior en la ruta. Del manual:
Puede anteponer las coordenadas con ++ para hacerlas “relativas”. Una coordenada como ++(1cm,0pt) significa "1 cm a la derecha de la posición anterior, lo que la convierte en la nueva posición actual". Las coordenadas relativas suelen ser útiles en contextos "locales":
Esto lo hace tan fácil como:
\draw[arrow] (R.north) -- ++(0,0.5) -| (S.north) node[above, pos=0.25] {$\delta$};
Esto dibujará un nodo desde el norte del nodo R, 0,5 hacia arriba, luego se conectará al norte de S, pero hará un giro brusco para llegar allí (especificado por -|
). Se coloca un nodo 0,25 por encima del camino (que resulta ser simétrico) y se rellena con $\delta$
.
Ambas respuestas darán aproximadamente la misma imagen, pero pensé que te gustaría ver múltiples 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}