饼图不使用百分比数字

饼图不使用百分比数字

你会看到下面的代码,它为你绘制了一个饼图

\documentclass{article}
\usepackage{pgf-pie}

\begin{document}
  \begin{tikzpicture}

    \pie[rotate=20, color={white}, sum=auto, after number=, radius=2] {10/, 10/, 10/, 10/, 10/,10/, 10/, 10/}

  \end{tikzpicture}
\end{document}

`

我想要数字 1 到 8 而不是 10。使用该命令\pie可以实现吗?

答案1

我不知道是否pgf-pie支持这一点。否则,您可以使用以下代码来创建图表。它还可以在newcommandpic环境中使用,以使其可重复使用。

您可以调整参数mysegments(段数)和myradius(段半径)进行定制。

\documentclass[tikz, border=5mm]{standalone}

\begin{document}    
  \begin{tikzpicture}
    \def\mysegments{8}
    \def\myradius{2}
    \foreach \x in {1,...,\mysegments} {
        \draw (0,0) --++ (360/\mysegments*\x:\myradius) arc (360/\mysegments*\x:360/\mysegments*(\x+1):\myradius);
        \node at (360/\mysegments*\x-180/\mysegments:\myradius/2) {\x};
    }
  \end{tikzpicture}
\end{document}

渲染图像

或者使用 15 个段 ( \def\mysemgments{15}): 渲染图像

答案2

如果您希望各个段可以具有不同的大小,您可以这样做:

代码

\documentclass[tikz, border=2mm]{standalone}

\begin{document}

\newcommand{\Pie}[4][white]%
%[fill color] parts/color, size, rotate
{   \xdef\PieSum{0}
    \foreach \Seg/\Col in {#2}
    {   \pgfmathparse{\PieSum+\Seg}
        \xdef\PieSum{\pgfmathresult}
    }
    \xdef\PieDone{0}
    \begin{scope}[rotate=#4]
        \foreach \Seg/\Col [count=\C] in {#2}
        {   \pgfmathsetmacro{\PieDeg}{\Seg/\PieSum*360}
            \fill[#1, \Col, draw=black] (0,0) -- ++ (\PieDone:#3) arc (\PieDone:\PieDone+\PieDeg:#3) -- cycle;
            \node at  (\PieDone+\PieDeg/2:#3*0.7) {\C};
            \pgfmathparse{\PieDone+\PieDeg}
            \xdef\PieDone{\pgfmathresult}
        }
    \end{scope}
}

\begin{tikzpicture}
 \Pie[orange!50]{5/blue!50,7/,13/,19/green!50,11/}{5}{90}
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

答案3

我理解这个问题是问如何使用pgf-pie 包(不是如何使用 TikZ 来实现)它的工作原理如下:

在此处输入图片描述

\documentclass[tikz, border=5pt]{standalone}
\usepackage{pgf-pie}

\begin{document}
\begin{tikzpicture}[]
\pie[rotate=20, color={white}, sum=auto, radius=2,
text=inside,  % <----
before number=\phantom,  % <----
after number=,] {1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8}
\end{tikzpicture}
\end{document}

相关内容