pgf-pie-仅显示大于 0 的值

pgf-pie-仅显示大于 0 的值

我有三张饼图,我只想为它们创建一个图例。为此,只有第三张图包含图例。但我的第三张图只包含一个值。为了创建图例,我在第三张图中将三张饼图中出现的所有值归零。结果看起来与第一张图类似。

\documentclass{article}

\usepackage{pgf-pie}

\begin{document}

\begin{tikzpicture}
\pie[pos={0,0},radius=1.5,sum=auto,text=]{22/Apple pie ,5/Cheesecake}
\pie[pos={4,0},radius=1.5,sum=auto,text=]{17/Apple pie,9/Cheesecake,1/Raspberry pie}
\pie[pos={8,0},radius=1.5,sum=auto,text=legend] {27/Apple pie,0/Cheesecake,0/Raspberry pie}
\end{tikzpicture}

\end{document}

结果: 结果

饼图中是否可以只显示大于 0 的值?我希望得到与第二张图类似的结果。我宁愿不改变图表的顺序。

期望的是: 期望

答案1

您可以使用before number钩子来实现这一点。这是在数字之前执行的。

\documentclass{article}

\usepackage{pgf-pie}

\begin{document}

\begin{tikzpicture}
\def\printonlypositive#1{\ifnum#1>0
#1
\fi}
\pie[pos={0,0},radius=1.5,sum=auto,text=]{22/Apple pie ,5/Cheesecake}
\pie[pos={4,0},radius=1.5,sum=auto,text=]{17/Apple pie,9/Cheesecake,1/Raspberry pie}
\pie[pos={8,0},radius=1.5,sum=auto,text=legend,
before number=\printonlypositive] {27/Apple pie,0/Cheesecake,0/Raspberry pie}
\end{tikzpicture}
\end{document}

在此处输入图片描述

一个更强大的版本,也适用于非整数,是

\documentclass{article}

\usepackage{pgf-pie}

\begin{document}

\begin{tikzpicture}
\def\printonlypositive#1{\ifdim#1pt>0pt
#1
\fi}
\pie[pos={0,0},radius=1.5,sum=auto,text=]{22/Apple pie ,5/Cheesecake}
\pie[pos={4,0},radius=1.5,sum=auto,text=]{17/Apple pie,9/Cheesecake,1/Raspberry pie}
\pie[pos={8,0},radius=1.5,sum=auto,text=legend,
before number=\printonlypositive] {27/Apple pie,0/Cheesecake,0/Raspberry pie}
\end{tikzpicture}
\end{document}

相关内容