同一节点的两条边并将圆添加到节点

同一节点的两条边并将圆添加到节点

我的 qtree 图存在三个问题:

  1. 如何为同一个孩子添加多个边?
  2. 如何在边上添加圆?
  3. 我不知道如何像图像那样组织节点:

在此处输入图片描述

这是我的 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.5Y 轴,因此向下移动。

origen.220

这个使用与第一个相同的逻辑,基本上该线将从origen220 度处命名的节点开始,因此位于左下方。

(origen.220|-dos.north)

这样做是为了计算一条垂直线。它将从上一个点的坐标开始,并在到达名为 的节点的北点相同的高度时停止dos|-基本上意味着“先垂直,然后水平”。

输出

图1

代码

\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}

相关内容