我很难将节点圈分成三部分。
我希望将圆圈水平分割,然后将底部垂直分成两半,就像这样:
我仍然希望能够在每个部分内放置文本。
提前致谢
编辑 我最终可以得到如上图所示的圆圈,但我无法按照我想要的方式在每个部分放置文字。
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}
\begin{tikzpicture}[scale =3 ]
\node [circle split,draw,text width=15em] (z){$a$ \hfill $b$}; \draw
(z.center) -- (z.south);
\end{tikzpicture}
\end{document}
答案1
要写入拆分节点的不同部分,请使用命令\nodeparts
- 请参阅 pgf/tikz 手册第 17.3 节。在本例中,您人为地创建了三个节点部分,因此circle split
您可以使用以下方式写入节点的顶部和底部部分
\node[circle split, draw]{top text\nodepart{lower} lower text};
我认为,要写入底部分割的左右部分,您需要进行修改。以下是执行此操作的一种方法:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}
\begin{tikzpicture}[scale =3 ]
\node [circle split,draw] (z){1\nodepart{lower} 2\quad 3};
\draw (z.center) -- (z.south);
\end{tikzpicture}
\end{document}
得出的结果为:
应该能够“正确地”定义这种类型的拆分节点部分,在这种情况下,您可以在每个组件中写入而不需要这种技巧。
另一种方法是定义一个pic
(参见 tikz 手册第 18.2 节),创建节点形状,然后将文本放入每个部分。图片的语法是
pic{mysplit={radius, top text, left text, right text}
您可以使用\pic
命令或放置图片\draw(x,y)pic{...}
。这样做,MWE
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\begin{document}
\tikzset{
pics/mysplit/.style args = {#1,#2,#3,#4}{% radius, top tex, left text, right text
code = {
\draw (0,0) circle (#1); % draw the circles and the lines
\draw(-#1,0)--(#1,0);
\draw(0,0)--(0,-#1);
\pgfmathsetmacro\half{#1/3}% a third looked better than a half...
\node at (0,\half){#2};
\node at (-\half,-\half){#3};
\node at (\half,-\half){#4};
}
}
}
\begin{tikzpicture}
\draw (0,0) pic{mysplit={1,1,2,3}};
\draw (4,0) pic{mysplit={1.5,One,Two,Three}};
\end{tikzpicture}
\end{document}
生成: