我有要放置在饼图中的节点。在每种情况下,百分比都应放在自己的行上。我尝试//
这样做,但它只会删除标签中的单词和百分比之间的空格。(对于包含“租金和公用事业 35\%”的节点,我希望有三行。)
我尝试使用pin
选项将其中一个节点放置在饼图之外。结果很糟糕。我希望将图钉以 225 度的角度指向一个不可见的矩形节点的右上角,该节点包含“Clothing”和“5\%”,分行显示。
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0,0);
\draw (O) circle (3);
\draw (O) -- (0:3);
\draw (O) -- (90:3);
\draw (O) -- (216:3);
\draw (O) -- (234:3);
\draw (O) -- (288:3);
\path (O) -- node{Food 25\%} (45:3);
\path (O) -- node{Rent and Utilities 35\%} (153:3);
\path (O) -- node{pin distance=1cm,pin=below left:Clothing 5\%} (225:3);
\path (O) -- node{Other 5\%} (261:3);
\path (O) -- node{Car 20\%} (324:3);
\end{tikzpicture}
\end{document}
答案1
这就是你喜欢得到的吗?
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles}
\begin{document}
\begin{tikzpicture}[
every node/.style={align=center},
pin distance=17mm
]
\coordinate (O) at (0,0);
\draw (O) circle (3);
\draw (O) -- (0:3);
\draw (O) -- (90:3);
\draw (O) -- (216:3);
\draw (O) -- (234:3);
\draw (O) -- (288:3);
\path (O) -- node{Food\\ 25\%} (45:3);
\path (O) -- node{Rent and\\ Utilities\\ 35\%} (153:3);
\path (O) -- node[pin=225:Clothing\\ 5\%] {} (225:3);
\path (O) -- node{Other\\ 5\%} (261:3);
\path (O) -- node{Car\\ 20\%} (324:3);
\end{tikzpicture}
\end{document}
pin
也是label
节点的选项,因此它应该放在括号中,而不是节点内容的一部分(参见上面的代码)。为了在形状中以更多行写入文本,您应该定义text width
或选项align=left
或center
或right
或justify
。如果您喜欢带箭头的图钉,则pin distance
替换为:
every pin/.style = {inner sep=1pt, align=center,
pin distance = 17mm,
edge={<-, solid, shorten <=1mm}},