
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=3em, minimum width=6em]
\tikzstyle{sum} = [draw, fill=white, rectangle, node distance=1cm]
\tikzstyle{input} = [coordinate]
\tikzstyle{output} = [coordinate]
\begin{tikzpicture}[auto, node distance=2cm,>=latex']
\node [input, name=input] {};
\node [sum, right of=input] (sum) {S};
\node [block, right of=S] (E) {E};
\node [block, right of=E] (I) {I};
\node [block, above of=I] (J) {J};
\node [block, below of=J] (T) {T};
\node [output, below of=S] (output) {};
\node [output, below of=E] (output) {};
\node [output, below of=I] (output) {};
\node [output, right of=J] (output) {};
\node [output, right of=T] (output) {};
\draw [draw,->] (input) -- node {$A$} (S);
\draw [draw,->] (input) -- node {$\Lambda$} (S);
\draw [->] (S) -- node[name=$m \beta \left( \frac{I+l J}{N} \right)$] {$m \beta \left( \frac{I+l J}{N} \right)$} (E);
\draw [->] (S) -- node[name=$(1-m) \beta \left( \frac{I+l J}{N} \right)$] {$m \beta \left( \frac{I+l J}{N} \right)$} (I);
\draw [->] (E) -- node[name=k] {$k$} (I);
\draw [->] (I) -- node[name=n] {$k$} (J);
\draw [->] (I) -- node[name=$r_1$] {$r_1$} (T);
\draw [->] (J) -- node[name=$r_2$] {$r_2$} (T);
\draw [->] (T) -- node[name=$q\delta$] {$q\delta$} (E);
\draw [->] (T) -- node[name=$(1-q)\delta$] {$q\delta$} (S);
\draw [->] (s) -- node [name=$\mu$] {$\mu$}(output);
\draw [->] (E) -- node [name=$\mu$] {$\mu$}(output);
\draw [->] (I) -- node [name=$\mu+d_1$] {$\mu$}(output);
\draw [->] (J) -- node [name=$\mu+d_2$] {$\mu$}(output);
\draw [->] (T) -- node [name=$\mu$] {$\mu$}(output);
\end{tikzpicture}
\end{document}
답변1
약간의 잡초 제거 후 도착
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[auto, node distance=2cm,>=latex,block/.style={draw, fill=white, rectangle,
minimum height=3em, minimum width=6em}]
\node[block] (S) {S};
\node[block, right=of S] (E) {E};
\node[block, right=of E] (I) {I};
\node[block, above right=of I] (J) {J};
\node[block, below right=of I] (T) {T};
%
\draw[->] (S) -- ++ (0,2) -| node[pos=0.25,above]{$(1-m) \beta \left( \frac{I+l J}{N} \right)$} (I);
\draw[->] (S) -- node[pos=0.5,below]{$m \beta \left( \frac{I+l J}{N}\right)$}(E);
\draw[->] (E) -- node[pos=0.5,above]{$k$} (I);
\draw[->] (E.90) -- ++ (0,0.5) node[right] {$\mu$};
\draw[->] (I.20) -- node[pos=0.5,above,sloped] {$n$} (J.180);
\draw[->] (I.-20) -- node[pos=0.5,below,sloped] {$r_1$} (T.180);
\draw[->] (J) -- node[pos=0.5,right] {$r_2$} (T);
\draw[->] (T.-135) -- ++ (0,-1) -| node[pos=0.25] {$q\delta$} (E);
\draw[->] (T.-45) -- ++ (0,-2) -| node[pos=0.25] {$(1-q)\delta$} (S.-45);
\draw[->] (S.-135) -- ++ (0,-1) node[below]{$\mu$};
\draw[<-] (S.160) -- ++ (-1,0) node[left] {$\Lambda$};
\draw[<-] (S.200) -- ++ (-1,0) node[left] {$A$};
\draw[->] (T.0) -- ++ (1,0) node[right]{$\mu$};
\draw[->] (J.0) -- ++ (1,0) node[right]{$\mu+d_2$};
\end{tikzpicture}
\end{document}
메모:
\tikzstyle
더 이상 사용되지 않습니다.- 화살표 라이브러리도 마찬가지입니다.
- 그리고 사용하고 있던 위치 지정 구문.
- 노드에게이름그것은 공식입니다.
- 서로 다른 노드에 동일한 이름을 지정하는 것은 특별히 유용하지 않습니다.
- 이 코드는 더욱 최적화될 수 있습니다. 이는 우아함과 매우 명시적이어서 더 이해하기 쉬운 것 사이의 절충안을 시도한 것입니다.