碎片内的分数

碎片内的分数

我想知道是否可以创建一个饼图,饼图中的各部分(一块或所有部分)内都使用分数而不是默认数字?谢谢您的帮助。

代码:

\documentclass[fleqn,12pt, a4paper]{scrartcl}

\usepackage{tikz}
\usepackage{pgf-pie}


\begin{document}
\begin{tikzpicture}

%%I want 1/6 instead of 1 inside the pieces:
\pie[sum=auto]
{1/,1/,1/,1/,1/,1/}

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

已编辑以提供真正的\frac功能,全部使用包提供的本机密钥pgf-pie。显示了三个版本:

  1. \frac

  2. \displaystyle\frac, 和

  3. #1/#2

首先,分数必须以括号的形式提供{a/b},以便tikz可以对其进行求值以计算饼图切片大小。然后,为了将标签作为获取\frac,可以使用before numberafter number键来解包和求值分数,而不是将其作为数学计算,而是将其作为数学排版。

我通过查看包的核心部分找到了这个解决方案pgf-pie,并意识到宏\beforenumber\afternumber是排版的一部分。因此,我必须弄清楚如何定义键来扩展我需要扩展的内容,以便评估\beforenumber\p\afternumber为,例如,\frac{1}{6}\p定义为时{1/6}

妇女权利委员会:

\documentclass[fleqn,12pt, a4paper]{scrartcl}

\usepackage{tikz}
\usepackage{pgf-pie}

\def\myfrac#1{\expandafter\expandafter\expandafter\expandafter\expandafter%
  \expandafter\expandafter\myfracaux\expandafter\expandafter\expandafter#1}
\def\myfracaux#1/#2\relax{$\piestyle\frac{#1}{#2}$}
\def\piestyle{\textstyle}
\begin{document}

\begin{tikzpicture}
%%I want 1/6 instead of 1 inside the pieces:
\pie[sum=auto, before number=\myfrac, after number=\relax]
{{1/2}/,{3/16}/,{1/4}/,{1/16}/}
\end{tikzpicture}
%
\def\piestyle{\displaystyle}
\begin{tikzpicture}
%%I want 1/6 instead of 1 inside the pieces:
\pie[sum=auto, before number=\myfrac, after number=\relax]
{{1/6}/,{1/6}/,{1/6}/,{1/6}/,{1/6}/,{1/6}/}
\end{tikzpicture}

\begin{tikzpicture}
%%I want 1/6 instead of 1 inside the pieces:
\pie[sum=auto]
{{1/6}/,{1/6}/,{1/6}/,{1/6}/,{1/6}/,{1/6}/}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

轮图我写的包,可以使用。

在下面的第一个例子中,分子是第一个变量(\WCvarA),分母是第二个变量(\WCvarB)。使用 键设置值value=\WCvarA/\WCvarB。使用 键显示分数wheel data={$\frac{\WCvarA}{\WCvarB}$}

在下面的第二个例子中,分子是第一个变量(\WCvarA),分母是所有这些值的总和,由 给出\WCtotalnum。该值是初始设置value=\WCvarA。使用 键显示分数wheel data

在此处输入图片描述

\documentclass[border=6pt]{standalone}
\usepackage{wheelchart}
\begin{document}
\begin{tikzpicture}
\wheelchart[
  data=,
  pie,
  slices style=\WCvarC,
  value=\WCvarA/\WCvarB,
  wheel data={$\frac{\WCvarA}{\WCvarB}$}
]{%
  1/2/blue,
  3/16/cyan,
  1/4/yellow,
  1/16/orange%
}
\wheelchart[
  at={(7,0)},
  data=,
  pie,
  wheel data={$\frac{\WCvarA}{\WCtotalnum}$}
]{%
  1/blue,
  3/cyan,
  1/yellow,
  1/orange%
}
\end{tikzpicture}
\end{document}

相关内容