隐藏一些数字 - PGFpie

隐藏一些数字 - PGFpie

我正在处理包 pgf-pie 来绘制一些图片。

但是,我想隐藏一些百分比较小的,因为它们不适合这些扇区。我只想保留百分比较大的。

看我的身影。

在此处输入图片描述

代码如下:

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots,tikz}
\usepackage{pgf-pie}

\begin{document}

\begin{tikzpicture}[scale=0.5]
\pie[radius=4]
   {45/Palm.,
    25/SP,
    29/Cor.,
    1/San.}
\end{tikzpicture}

\end{document}

可以隐藏所有数字,但我不想,只想隐藏较小的数字。有人能帮我吗?

答案1

这个问题与这个,人们或多或少可以复制答案。

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{pgf-pie}

\begin{document}

\begin{tikzpicture}[scale=0.5]
\def\printonlylargeenough#1#2{\unless\ifdim#2pt<#1pt\relax
#2\printnumbertrue
\else
\printnumberfalse
\fi}
\newif\ifprintnumber
\pie[radius=4,before number=\printonlylargeenough{10},
    after number=\ifprintnumber\%\fi]
   {45/Palm.,
    25/SP,
    29/Cor.,
    1/San.}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这将只显示大于 10% 的百分比。

\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots,tikz}
\usepackage{pgf-pie}

\makeatletter
\providecommand\pgfpie@ifnum[3]{%
  \ifnum\numexpr#1\relax#2\numexpr#3\relax
    \expandafter\pgfutil@firstoftwo
  \else
    \expandafter\pgfutil@secondoftwo
  \fi
}

\renewcommand\pgfpie@numbertext[1]{%
  \pgfpie@ifnum{#1}{>}{10}{%
    #1\%%
  }{}%
}
\makeatother

\begin{document}

\begin{tikzpicture}[scale=0.5]
\pie[radius=4]
   {45/Palm.,
    25/SP,
    29/Cor.,
    1/San.}
\end{tikzpicture}

\end{document}

相关内容