这是我第一次尝试使用 LaTex 中的 Tikz 包创建图形。(顺便说一下,我使用的是 TexMaker)。因此,我到处找了一些示例代码,并稍加修改,以得到我想要的图形,但图形中的文字并没有按我的意图对齐。
以下是我希望进行的更正:
- 文字写在循环箭头上方 -> 我希望文字从循环箭头上清除。
- 我希望符号下方有文字。因此,字样“抵抗感染”出现在符号 zeta 下方。“未治愈”也一样
- 与直箭头相关的文字也一样。我更希望符号位于箭头上方,但文字可能位于箭头下方。(或者甚至位于符号下方和箭头上方)
这是我的代码:
\documentclass[11pt]{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows}
\title{Discrete Time SIR Model - Stochastic analysis}
\author{Louis Kim}
\begin{document}
\maketitle
\tikzstyle{int}=[circle, draw, fill=blue!20, minimum size=3em, auto]
\tikzstyle{init} = [pin edge={loop,thin,black}]
\begin{tikzpicture}[node distance=5cm,auto,>=latex']
\node [int, pin={[init] $\zeta_{i,t}$,resisted infection}] (a) {$S$};
\node [int, pin={[init] $1-\delta$,not cured}] (c) [right of=a] {$I$};
\node [int] (e) [right of=c] {$R$};
\path[->] (a) edge node {$1-\zeta_{i,t}$, not resisted infection} (c);
\draw[->] (c) edge node {$\delta$, cured} (e) ;
\end{tikzpicture}
\end{document}
任何帮助都将不胜感激!谢谢,
答案1
您选择的解决方案
pin
很有趣,尽管我不认为它与选项loop
(还有loop above
)完美配合,因为pin distance
放置引脚节点和循环本身是独立的。- 您可以手动设置一个
pin distance
。 loop
您可以将它作为与ed一起的节点使用edge
。
- 您可以手动设置一个
使用
align=center
允许手动使用换行符的选项(\\
)。您可以使用相同的方法,但这两条线太靠近线了(我引入了一点空间)。
我宁愿使用两个节点,其中第二个节点使用选项
swap
以便它转到另一侧(swap
切换选项的方向auto
)。
代码
\documentclass[tikz,convert=false]{standalone}
\usepackage{tikz}
\tikzset{
int/.style={circle, draw, fill=blue!20, minimum size=3em},
init/.style={pin distance=1.2cm,pin edge={loop,thin,black}}
}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[node distance=5cm,auto,>=latex',every node/.append style={align=center}]
\node [int, pin={[init] $\zeta_{i,t}$,\\resisted infection}] (a) {$S$};
\node [int, pin={[init] $1-\delta$,\\not cured}] (c) [right of=a] {$I$};
\node [int] (e) [right of=c] {$R$};
\path[->, auto=false] (a) edge node {$1-\zeta_{i,t}$\\[.2em] not resisted infection} (c)
(c) edge node {$\delta$ \\[.2em] cured} (e) ;
\end{tikzpicture}
\begin{tikzpicture}[node distance=5cm,auto=right,>=latex',every node/.append style={align=center}]
\node [int] (a) {$S$} edge [loop] node {$\zeta_{i,t}$,\\resisted infection} ();
\node [int] (c) [right of=a] {$I$} edge [loop] node {$1-\delta$,\\not cured} ();
\node [int] (e) [right of=c] {$R$};
\path[->, auto=left] (a) edge node {$1-\zeta_{i,t}$} node[swap] {not resisted infection} (c)
(c) edge node {$\delta$} node[swap] {cured} (e) ;
\end{tikzpicture}
\end{document}