我正在尝试创建一个节点水平连接到两个节点的图表。我已附上我想要的图表的图像。但是,我无法移动d节点向上,使箭头指向埃可以流过。另外,我似乎不能把埃节点稍微向右移动一点。此外,我也无法手动定位箭头的起点。目前,从节点发出的两个箭头C互相重叠。
这是我当前的最小工作示例:
\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows, chains, quotes}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{calc, positioning}
\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=2cm, text centered, minimum height=1.5cm, text width=3cm, very thick, draw=black, fill=white]
\tikzstyle{arrow} = [thick,->,>=stealth]
\begin{document}
\begin{tikzpicture}
\node (a) [startstop] {\textsf{{\normalsize A}}};
\node (b) [startstop, right=1cm of a] {\textsf{b}};
\node (c) [startstop, right= 1cm of b] {\textsf{c}};
\node (d) [startstop, right = 1cm of c] {\textsf{d}};
\node (e) [startstop, right = 1cm of d] {\textsf{e}};
\draw [arrow] (a) -- (b);
\draw [arrow] (b) -- (c);
\draw [arrow] (c) -- (d);
\draw [arrow] (c) -- (e);
\end{tikzpicture}
\end{document}
这是我想要绘制的图表:
如果有人能帮助我,我将不胜感激!
答案1
像这样吗?
\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{positioning}
\tikzset{startstop/.style={rectangle, rounded corners, minimum width=2cm, text
centered, minimum height=1.5cm, text width=3cm, very thick, draw=black,
fill=white},
arrow/.style={thick,->,>=stealth}}
\begin{document}
\begin{tikzpicture}[font=\sffamily,]
\node (a) [startstop] {A};
\node (b) [startstop, right=1cm of a] {b};
\node (c) [startstop, right= 1cm of b] {c};
\node (d) [startstop, right = 1cm of c,yshift=1.25em] {d};
\node (e) [startstop, right = 1cm of d,yshift=-2.5em] {e};
\draw [arrow] (a) -- (b);
\draw [arrow] (b) -- (c);
\draw [arrow] (c.east|-d) -- (d);
\draw [arrow] (c.east|-e) -- (e);
\end{tikzpicture}
\end{document}
评论:
- 要垂直移动节点,只需使用
yshift
; \tikzstyle
已被弃用,因此我用相应的\tikzset
命令替换它;- 如果您希望所有文本都无衬线,则更容易添加
font=\sffamily
; - 如果你添加
tikz
到选项中,standalone
这将加载tikz
和使其成为一个独立的环境; - 语法
|-
并-|
很好地解释这个答案并用于确保连接是水平的; - 我删除了所有你不使用的库;
- 在这里使用链条可能是有意义的,或者不有意义。