
estoy usando tikz para dibujar una figura que comprometa muchas cosas que seguramente necesitaré para más figuras. ¡Sería genial si alguien pudiera ayudar! Actualmente estoy estancado y especialmente en lo que respecta al posicionamiento del bloque...
Esto es lo que tengo hasta ahora, pero necesito un texto de flecha:
\begin{tikzpicture}
[block/.style={draw,minimum width=#1,minimum height=2em},
block/.default=10em,high/.style={minimum height=3em},node distance=2em]
\node (n0){Start};
\node[block=28em,high,below=of n0] (n1){Identification Goal Definition + Prior Knowledge Accumulation};
\node[block,below=of n1.south west,xshift=2em,anchor=north west] (n2){System Excitation};
\node[block,below=of n2] (n3){Model Architecture Selection};
\node[block,below=of n3] (n4){Order and Parameter Estimation};
\node[block,below=of n4] (n5){Model Validation};
\node[block=25em,high,below=of n5.south west,anchor=north west] (n6){Successful System Identification};
\draw[-stealth] (n0) edge (n1)
foreach \X in {1,...,5} {(n\X.south-|n2) edge (n\the\numexpr\X+1\relax.north-|n2)}
(n5.east) -- ++(5em,0) coordinate (aux) |- (n2);
\draw[-stealth] (aux|-n4) edge (n4) (n5.east) --++ (2em,0);
\draw[-stealth] (aux|-n3) edge (n3) (n5.east) --++ (2em,0);
\end{tikzpicture}
Respuesta1
¡Bienvenido! En este sitio hay aproximadamente 100 diagramas de este tipo. Ahora hay uno más. Para lograr un posicionamiento adecuado, es posible que desee utilizar la positioning
biblioteca. Hay muchas otras herramientas como chains
pero en este caso no dan resultados en mi humilde opinión.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[block/.style={draw,minimum width=#1,minimum height=2em},
block/.default=10em,high/.style={minimum height=3em},node distance=2em]
\node (n0){Start};
\node[block=28em,high,below=of n0] (n1){};
\node[block,below=of n1.south west,xshift=2em,anchor=north west] (n2){};
\node[block,below=of n2] (n3){};
\node[block,below=of n3] (n4){};
\node[block=25em,high,below=of n4.south west,anchor=north west] (n5){};
\draw[-stealth] (n0) edge (n1)
foreach \X in {1,...,4} {(n\X.south-|n2) edge (n\the\numexpr\X+1\relax.north-|n2)}
(n4.east) -- ++(5em,0) coordinate (aux) |- (n2);
\draw[-stealth] (aux|-n3) edge (n3) (n4.east) --++ (2em,0);
\end{tikzpicture}
\end{document}
Para agregar flechas, puedes usar quotes
.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,quotes}
\begin{document}
\begin{tikzpicture}[block/.style={draw,minimum width=#1,minimum height=2em},
block/.default=10em,high/.style={minimum height=3em},node distance=2em,auto]
\node (n0){Start};
\node[block=28em,high,below=of n0] (n1){};
\node[block,below=of n1.south west,xshift=2em,anchor=north west] (n2){};
\node[block,below=of n2] (n3){};
\node[block,below=of n3] (n4){};
\node[block=25em,high,below=of n4.south west,anchor=north west] (n5){};
\draw[-stealth] (n0) edge["a"] (n1)
foreach \X in {1,...,4} {(n\X.south-|n2) edge["b"] (n\the\numexpr\X+1\relax.north-|n2)}
(n4.east) -- ++(5em,0) coordinate (aux) |- node[pos=0.75]{c}(n2);
\draw[-stealth] (aux|-n3) edge["d"] (n3) (n4.east) --node{e}++ (2em,0);
\end{tikzpicture}
\end{document}
Y este es el código de su pregunta actualizada con textos de flechas.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,quotes}
\begin{document}
\begin{tikzpicture}
[block/.style={draw,minimum width=#1,minimum height=2em},
block/.default=10em,high/.style={minimum height=3em},
node distance=2em,auto]
\node (n0){Start};
\node[block=28em,high,below=of n0] (n1){Identification Goal Definition + Prior Knowledge Accumulation};
\node[block,below=of n1.south west,xshift=2em,anchor=north west] (n2){System Excitation};
\node[block,below=of n2] (n3){Model Architecture Selection};
\node[block,below=of n3] (n4){Order and Parameter Estimation};
\node[block,below=of n4] (n5){Model Validation};
\node[block=25em,high,below=of n5.south west,anchor=north west] (n6){Successful System Identification};
\draw[-stealth] (n0) edge["a"] (n1)
foreach \Y [count=\X] in {bla,blub,pft,ghh,trf}
{(n\X.south-|n2) edge["\Y"] (n\the\numexpr\X+1\relax.north-|n2)}
(n5.east) -- ++(5em,0) coordinate (aux) |- node[pos=0.75] {d} (n2) ;
\draw[-stealth] (aux|-n3) edge["c"] (n3)
(aux|-n4) edge["b"] (n4) (n5.east) -- node[pos=0.5]
{prt} ++ (2em,0);
\end{tikzpicture}
\end{document}
Los textos son únicos para que puedas reemplazarlos por lo que quieras. Asegúrese de cargar la quotes
biblioteca (y por supuesto positioning
) si simplemente agrega el archivo tikzpicture
a su documento.
Respuesta2
Una pequeña variación de la respuesta del gato de @Schrödinger. Con el uso de chains
biblioteca y macro `join:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
chains,
positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 8mm and 0mm,
start chain = going above,
box/.style = {draw, minimum width=#1, minimum height=12mm, on chain},
box/.default = 44mm,
every join/.style = {<-},
> = {Stealth[length=3mm]}
]
\node (n1) [box=88mm]{};
\node (n2) [box, above right=of n1.north west] {};
\node (n3) [box,join] {};
\node (n4) [box,join] {};
\node (n5) [box=96mm, above right=8mm and -8mm of n4.north west] {};
\draw[<-] (n5.north) -- ++ (0,0.8) node[above] {Start};
%
\begin{scope}[every path/.style={->}]
\draw (n5.south -| n4) -- (n4);
\draw (n2.east) -- ++ (1,0);
\draw (n2.east) ++ (1,0) -- ++ (1,0) |- (n3);
\draw (n3.east) ++ (2,0) |- (n4);
\draw (n2) -- (n2 |- n1.north);
\end{scope}
\end{tikzpicture}
\end{document}