我的 qtree 图存在三个问题:
- 如何为同一个孩子添加多个边?
- 如何在边上添加圆?
- 我不知道如何像图像那样组织节点:
这是我的 MWE:
\documentclass{article}
\usepackage{tikz-qtree,tikz-qtree-compat}
\usepackage[spanish]{babel} % Manejo de idiomas}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\begin{document}
\begin{tikzpicture}
\tikzset{edge from parent/.style={draw,edge from parent path={(\tikzparentnode.south)-- +(0,-8pt)-| (\tikzchildnode)}}}
\tikzset{
every tree node/.style={
rounded corners=1mm,
draw,
align=center,
anchor=north,
text width=8cm,
font=\sffamily
},
level 1/.style={level distance=3cm},
level distance=4cm,
sibling distance=10pt,
}
\Tree [.\node (origen) {¿Se conoce la relacion confiabilidad/edad para esta falla?}; \edge node[fill=white,near end] {Si}; \edge node[fill=white,near end] {Parcial};
[.\node{¿Es posible aplicar tareas TD?}; ]
]
\end{tikzpicture}
\end{document}
如果我的代码看起来很简单,我很抱歉,但我不知道如何解决这些问题
答案1
我同意树会增加不必要的麻烦。这是您的起点。欢迎发表评论以澄清问题。
解释
label=180:(1)
此命令将标签添加到节点。数字180
设置标签出现的角度。它们的工作原理如下:
0
= 右90
= 顶部180
= 左270
= 底部
($(origen.south)+(0,-1.5)$)
这个需要 tikz 库calc
,基本上它会计算一个点。在本例中,它从命名节点的南边开始origen
,并添加-1.5
Y 轴,因此向下移动。
origen.220
这个使用与第一个相同的逻辑,基本上该线将从origen
220 度处命名的节点开始,因此位于左下方。
(origen.220|-dos.north)
这样做是为了计算一条垂直线。它将从上一个点的坐标开始,并在到达名为 的节点的北点相同的高度时停止dos
。|-
基本上意味着“先垂直,然后水平”。
输出
代码
\documentclass{article}
\usepackage{tikz}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usetikzlibrary{calc}
\tikzset{
every node/.style={
%rounded corners=1mm,
align=center,
font=\sffamily
},
main/.style={
draw,
text width=5cm
}
}
\begin{document}
\begin{tikzpicture}
% Nodes
\node[main, label=180:(1)] (origen) {¿Se conoce la relacion confiabilidad/edad para esta falla?};
\node[main,anchor=east, label=180:(2)] (dos) at ($(origen.south)+(0,-1.5)$) {¿Es posible aplicar tareas TD?};
\node[main, label=180:(3)] (otro) at ($(origen.south)+(0,-4)$) {bla bla};
\node[main, text width=3cm, circle, anchor=west] (circ) at ($(origen.south east)+(0,-1.5)$) {bla bla bla bla bla};
% Edges
\draw (origen.220) -- (origen.220|-dos.north) node[midway, right] {Partial};
\draw (origen.195) -- (origen.195|-dos.north) node[midway, left] {Yes};
\draw (origen.340) -- (origen.340|-otro.north) node[pos=.2, right] {No};
\draw[dashed] (circ.west) -- (circ.west-|origen.340);
\end{tikzpicture}
\end{document}