我有一个饼图代码,但它没有给出我期望的显示效果。我想改变这个显示效果的两个方面。首先,我想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}