答案1
已编辑以提供真正的\frac
功能,全部使用包提供的本机密钥pgf-pie
。显示了三个版本:
\frac
\displaystyle\frac
, 和#1/#2
首先,分数必须以括号的形式提供{a/b}
,以便tikz
可以对其进行求值以计算饼图切片大小。然后,为了将标签作为获取\frac
,可以使用before number
和after 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}