我正在处理包 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}