将标签移近 tikz 图中的边缘

将标签移近 tikz 图中的边缘

在下图中,如何将“y”和“n”标签移近相应的边缘?我可以用来pos=...沿边缘移动标签,但我没有找到将标签移向边缘的方法。

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs,quotes}
\usetikzlibrary{graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph[tree layout]{
  node1[as=$x_{2}\leq-0.1254968$] -> {
    node2[>"y",>swap,as=$x_{1}\leq-1.591232$] -> {
      node3[>"y",>swap,as=$x_{2}\leq-0.2210189$] -> {
        leaf1[>"y",>swap,draw,as=0.20 0.79 0.00],
        leaf2[>"n",draw,as=0.58 0.16 0.26]
      },
      leaf3[>"n",draw,as=0.34 0.64 0.02]
    },
    leaf4[>"n",draw,as=0.20 0.70 0.10]
  }
};
\end{tikzpicture}
\end{document}

LuaLaTeX 输出

答案1

修改inner sep这些节点的 是一种方法。可以按节点进行修改,例如,node2[>"y"{inner sep=0},>swap,as=$x_{1}\leq-1.591232$]但看起来您想为所有边缘标签更改它,因此添加会更快

edge quotes={auto, inner sep=0}

到 的选项\graph

在此处输入图片描述

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs,quotes}
\usetikzlibrary{graphdrawing}
\usegdlibrary{trees}
\begin{document}
\begin{tikzpicture}
\graph[tree layout,
       edge quotes={auto, inner sep=0}
      ]{
  node1[as=$x_{2}\leq-0.1254968$] -> {
    node2[>"y",>swap,as=$x_{1}\leq-1.591232$] -> {
      node3[>"y",>swap,as=$x_{2}\leq-0.2210189$] -> {
        leaf1[>"y",>swap,draw,as=0.20 0.79 0.00],
        leaf2[>"n",draw,as=0.58 0.16 0.26]
      },
      leaf3[>"n",draw,as=0.34 0.64 0.02]
    },
    leaf4[>"n",draw,as=0.20 0.70 0.10]
  }
};
\end{tikzpicture}
\end{document}

相关内容