![使用 TikZ 在决策树中定位节点](https://linux22.com/image/298469/%E4%BD%BF%E7%94%A8%20TikZ%20%E5%9C%A8%E5%86%B3%E7%AD%96%E6%A0%91%E4%B8%AD%E5%AE%9A%E4%BD%8D%E8%8A%82%E7%82%B9.png)
你好,我正在尝试用 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}