使用 TikZ 在决策树中定位节点

使用 TikZ 在决策树中定位节点

你好,我正在尝试用 Latex 制作决策树,目前我有

我有棵树

但是我的树可能很重要,所以我希望我的节点更靠近左侧,但不在垂直方向上。就像这样:

我想要的樹

当我通过 [右上方] 定义位置时,如果我改变节点距离,两者都会改变,如果它们在垂直方向上太靠近,其他节点最终会相互碰撞(我知道有些节点在右侧重叠,我可以纠正这个问题,这不是我目前的问题)

这是我的代码

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{fullpage}
\usepackage{listings}   
\usepackage{booktabs}
\usepackage{tikz-cd}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,shapes}

\begin{document}
\tikzstyle{block3} = [rectangle, draw, fill=white, text width=4cm, text centered, rounded corners, minimum height=4em]

\begin{tikzpicture}[node distance = 4cm, auto]     
\node [block3] (MDS) {Y a-t-il eu MDS ? };
    \node [block3, above right of=MDS, node distance = 8cm] (Jeune) {Jeune \\ Plus ou moins de 25 ans ? };
        \node [block3, above right of=Jeune] (Jeune_Non) {Non Jeune \\ Problème};
        \node [block3, below right of=Jeune] (Jeune_Oui) {Jeune};
            \node [block3, above right of =Jeune_Oui](18) {18 ans dans l'année N};
            \node [block3, right of =Jeune_Oui](21) {jusqu'à 21 ans en N };
            \node [block3, below right of =Jeune_Oui](25) {jusqu'à 25 ans en N \\ Si étudiant N-1, possible avec les parents \\ EEC : EOCCUA 4};


    \node [block3, below right of=MDS, node distance = 8cm] (MDS_Oui) {Personne avec un MDS};
\end{tikzpicture}
\end{document}

总而言之,我的问题是,当我将节点放置在右下方或右上方时,它们位于对角线中(比如说时钟上的一点半),而我希望它们位于十二点半或一点。

答案1

您可以指定xshift

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\tikzstyle{block3}=[rectangle,draw,fill=white,text width=4cm,text centered,rounded corners,minimum height=4em]
\begin{tikzpicture}[node distance=4cm,auto]
\node [block3](MDS){Y a-t-il eu MDS ?};
    \node [block3,above of=MDS,xshift=3cm,node distance=4cm](Jeune){Jeune \\ Plus ou moins de 25 ans ?};
        \node [block3,above right of=Jeune](Jeune_Non){Non Jeune \\ Problème};
        \node [block3,below right of=Jeune](Jeune_Oui){Jeune};
            \node[block3,above right of=Jeune_Oui](18){18 ans dans l'année N};
            \node[block3,right of=Jeune_Oui](21){jusqu'à 21 ans en N };
            \node[block3,below right of=Jeune_Oui](25){jusqu'à 25 ans en N \\ Si étudiant N-1,possible avec les parents \\ EEC : EOCCUA 4};
    \node [block3,below of=MDS,xshift=3cm,node distance=4cm](MDS_Oui){Personne avec un MDS};
\end{tikzpicture}
\end{document}

相关内容