我需要创建这个饼图
\mypie{x,y,82}{basecolor}{Fillcolor}{Some Text,L}
x= 第一个圆的半径,y= 第二个同心圆的半径(这是为了控制圆的大小和两个同心圆之间的厚度,如果您愿意,可以随意提供另一种方式来提供值)
- 82 是百分比应为 82%,如中间所示,使用填充颜色书写
- “一些文本”将自身相对放置在饼图的左侧或右侧的中心位置 [L 在此处为左侧,R 应使文本显示在右侧] 此处的基色为灰色,填充色为绿色,如图所示这里。
附加组件:
\mypie{x,y,82}{basecolor}{Fillcolor}{Some Text,L}{3D}
- 给出一个可选开关来获得类似上述饼图的 3D 管道效果,即圆形管道效果,而不是上述平面 2D 效果。
答案1
好吧,这是一个使用 Tikz 和 的自定义解决方案xstring
。命令如下:
\percentage[ <optional> ]{ <radius,perc> }{ <color1,color2> }{ <label,position> }
- 参数
optional
的长度为1.5mm
等。默认值为2pt
。 - 第二个参数实际上采用如图所示的两个值,以逗号分隔。确定
radius
圆圈的大小(而不是其宽度),而百分比计算进度圈栏,当然还有中央标签。 - 第三个参数采用颜色,第一个是下面的颜色,第二个是进度条。
- 最后一个参数带有标签及其位置。在本例中,我保留了默认位置名称,因为对于此命令来说,重命名它们是没有意义的。它们如下:
- 上、右、左、下
- 右上方/左上方,右下方/左下方
- 您还可以使用任意角度,例如:90(上方)、45(右上方)等等。
输出
代码
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usepackage{xstring}
\newcommand\percentage[4][2pt]{%
\tikz{
\StrBehind{#2}{,}[\perc]
\StrBefore{#2}{,}[\lwidth]
\StrBehind{#3}{,}[\percl]
\StrBefore{#3}{,}[\backl]
\StrBehind{#4}{,}[\pos]
\StrBefore{#4}{,}[\lbl]
\pgfmathsetmacro\endangle{-(\perc/100*360)+90}
\draw[\backl, line width=#1] (90:\lwidth mm) arc (90:-270:\lwidth mm);
\draw[\percl, line width=#1] (90:\lwidth mm) arc (90:\endangle:\lwidth mm);
\pgfmathsetmacro\halfw{\lwidth/2}
\node[circle,
minimum size=\halfw mm,
text=\percl,
label={\pos:\lbl}
] {$\perc\%$};
}
}
\begin{document}
\percentage{7,64.90}{gray!20,green}{Some text,above right}
\end{document}