饼图中出现不期望(或不想要)的显示

饼图中出现不期望(或不想要)的显示

我有一个饼图代码,但它没有给出我期望的显示效果。我想改变这个显示效果的两个方面。首先,我想5%在下面的行中显示Clothing。我尝试了以下命令

\path (O) -- node[pos=0.75,pin=225:Clothing \\ 5\%] {} (225:3); 

\path (O) -- node[align=left,pin=225:Clothing \\ 5\%] {} (225:5);

\\似乎被忽略了。其次,我希望引脚位于 225 度方向。我以为(225:3)这些命令会在显示屏上显示出来。

代码的哪一部分有来自above right节点上的点的引脚?pos=0.75指示TikZ绘制什么?

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{positioning}   


\begin{document}

\begin{tikzpicture}[pin distance=5mm]

\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[align=left]{Food \\ 25\%} (45:3);
\path (O) -- node[align=left]{Rent and \\ Utilities \\ 35\%} (153:3);
%\path (O) -- node[align=left,pin=225:Clothing \\ 5\%] {} (225:5);
\path (O) -- node[pos=0.75,pin=225:Clothing\\ 5\%] {} (225:3);
\path (O) -- node[align=left]{Other \\ 5\%} (261:3);
\path (O) -- node[align=left]{Car \\ 20\%} (324:3);

\node[above=33mm of O] {\textbf{David's Monthly Expenses}};
\end{tikzpicture}

\end{document}

答案1

align如果给出选项,则启用换行符:

\path (O) -- node[pos=0.75,pin={[align=center]225:Clothing\ 5\%}] {} (225:3);

除了嵌套节点之外,还可以放置一个节点并绘制一条线:

\draw (225:4) node[align=center] (tmp) {Clothing\\5\%} (tmp) -- (225:2.5);

完整示例:

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{siunitx}

\begin{document}
\begin{tikzpicture}[pin distance=5mm]

\draw
  (0, 0) coordinate (O)
  circle (3)
  \foreach \i in {0, 90, 216, 234, 288} {
    (O) -- (\i:3)
  }
;

\path[every node/.style={align=center}]
  (O) -- node {Food \\ \SI{25}{\percent}} (45:3)
  (O) -- node {Rent and \\ Utilities \\ \SI{35}{\percent}} (153:3)
  (O) -- node {Other \\ \SI{5}{\percent}} (261:3)
  (O) -- node {Car \\ \SI{20}{\percent}} (324:3)
  (225:4) node (Clothing) {Clothing\\ \SI{5}{\percent}}
;
\draw (225:2.5) -- (Clothing);

\node[above=33mm of O] {\textbf{David's Monthly Expenses}};
\end{tikzpicture}
\end{document}

结果

在前一种情况下,pos=.75用作pin选项线的起点。

答案2

如果您使用实际节点,然后将“无”固定到该节点,使其看起来相反,那么可能更容易。据我所知,除非它是节点,否则您无法应用换行符。

输出

在此处输入图片描述

代码

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{positioning}   


\begin{document}

\begin{tikzpicture}[pin distance=1cm]

\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[align=left]{Food \\ 25\%} (45:3);
\path (O) -- node[align=left]{Rent and \\ Utilities \\ 35\%} (153:3);
\path (O) -- node[pos=.80,text width=2cm,align=left,pin=45:] {Clothing\\ 5\%} (225:5);
\path (O) -- node[align=left]{Other \\ 5\%} (261:3);
\path (O) -- node[align=left]{Car \\ 20\%} (324:3);

\node[above=33mm of O] {\textbf{David's Monthly Expenses}};
\end{tikzpicture}
\end{document}

相关内容