修改饼图中各部分的标签文本

修改饼图中各部分的标签文本

我有要放置在饼图中的节点。在每种情况下,百分比都应放在自己的行上。我尝试//这样做,但它只会删除标签中的单词和百分比之间的空格。(对于包含“租金和公用事业 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=leftcenterrightjustify。如果您喜欢带箭头的图钉,则pin distance替换为:

every   pin/.style  = {inner sep=1pt, align=center, 
                       pin distance = 17mm,
                       edge={<-, solid, shorten <=1mm}},

相关内容