diff options
Diffstat (limited to 'graphics/pgf/contrib/pgf-pie/pgf-pie.sty')
-rw-r--r-- | graphics/pgf/contrib/pgf-pie/pgf-pie.sty | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/graphics/pgf/contrib/pgf-pie/pgf-pie.sty b/graphics/pgf/contrib/pgf-pie/pgf-pie.sty index 6a669e337f..0aaa3a0b54 100644 --- a/graphics/pgf/contrib/pgf-pie/pgf-pie.sty +++ b/graphics/pgf/contrib/pgf-pie/pgf-pie.sty @@ -7,7 +7,7 @@ % \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{pgf-pie}[2011/10/02 v0.2 Some LaTeX macros for pie +\ProvidesPackage{pgf-pie}[2020/05/27 v0.3 Some LaTeX macros for pie chart by using PGF/Tikz package.] \RequirePackage{tikz} @@ -31,10 +31,10 @@ chart by using PGF/Tikz package.] \path (#8) -- ++(\midangle:#5) coordinate(O); \pgfmathparse{#7+#5} - \let\radius\pgfmathresult + \let\pgfpie@radius\pgfmathresult % slice - \draw[line join=round, fill=#6, \style] (O) -- ++(#1:#7) arc (#1:#2:#7) -- cycle; + \draw[line join=round, fill=#6, \pgfpie@style] (O) -- ++(#1:#7) arc (#1:#2:#7) -- cycle; \pgfmathparse{min(((#2)-(#1)-10)/110*(-0.3),0)} \let\temp\pgfmathresult @@ -45,19 +45,19 @@ chart by using PGF/Tikz package.] { % label and number together \path (O) -- ++(\midangle:\innerpos) node - {\scalefont{#3}\shortstack{#4\\\beforenumber#3\afternumber}}; + {\scalefont{#3}\shortstack{#4\\\pgfpie@numbertext{#3}}}; } { % label \iflegend \else - \path (O) -- ++ (\midangle:\radius) + \path (O) -- ++ (\midangle:\pgfpie@radius) node[inner sep=0, \pgfpie@text=\midangle:#4]{}; \fi % number \path (O) -- ++(\midangle:\innerpos) node - {\scalefont{#3}\beforenumber#3\afternumber}; + {\scalefont{#3}\pgfpie@numbertext{#3}}; } } @@ -65,7 +65,7 @@ chart by using PGF/Tikz package.] { \pgfmathparse{int(mod(#1,\value{pgfpie@colorLength}))} \let\ci\pgfmathresult - \foreach \c [count=\j from 0] in \color { + \foreach \c [count=\j from 0] in \pgfpie@color { \ifnum \j=\ci \xdef\thecolor{\c} \thecolor @@ -78,7 +78,7 @@ chart by using PGF/Tikz package.] { \pgfmathparse{int(mod(#1,\value{pgfpie@explodeLength}))} \let\ei\pgfmathresult - \foreach \e [count=\j from 0] in \explode { + \foreach \e [count=\j from 0] in \pgfpie@explode { \ifnum \j=\ei \xdef\theexplode{\e} \breakforeach @@ -95,12 +95,12 @@ chart by using PGF/Tikz package.] { \ifthenelse{\equal{\pgfpie@text}{inside}} { - \draw[fill=#4, \style] (#1) rectangle node - {\scalefont{#3}\shortstack{#5\\\beforenumber#3\afternumber}} ++(#2); + \draw[fill=#4, \pgfpie@style] (#1) rectangle node + {\scalefont{#3}\shortstack{#5\\\pgfpie@numbertext{#3}}} ++(#2); } { - \draw[fill=#4, \style] (#1) rectangle node - {\scalefont{#3}\beforenumber#3\afternumber} ++(#2); + \draw[fill=#4, \pgfpie@style] (#1) rectangle node + {\scalefont{#3}\pgfpie@numbertext{#3}} ++(#2); } } @@ -115,10 +115,10 @@ chart by using PGF/Tikz package.] \draw[fill=#4, #5] (#1) circle[radius=#2]; \ifthenelse{\equal{\pgfpie@text}{inside}} { - \node at (#1) {\scalefont{#3}\shortstack{#6\\\beforenumber#3\afternumber}}; + \node at (#1) {\scalefont{#3}\shortstack{#6\\\pgfpie@numbertext{#3}}}; } { - \node at (#1) {\scalefont{#3}\beforenumber#3\afternumber}; + \node at (#1) {\scalefont{#3}\pgfpie@numbertext{#3}}; } } @@ -127,25 +127,25 @@ chart by using PGF/Tikz package.] \newcounter{pgfpie@colorLength} \newcounter{pgfpie@sliceLength} -\def\setexplode#1\pgfeov{\def\explode{#1}} +\def\setexplode#1\pgfeov{\def\pgfpie@explode{#1}} \pgfkeyslet{/explode/.@cmd}{\setexplode} -\def\setcolor#1\pgfeov{\def\color{#1}} +\def\setcolor#1\pgfeov{\def\pgfpie@color{#1}} \pgfkeyslet{/color/.@cmd}{\setcolor} -\def\setradius#1\pgfeov{\def\radius{#1}} +\def\setradius#1\pgfeov{\def\pgfpie@radius{#1}} \pgfkeyslet{/radius/.@cmd}{\setradius} -\def\setpos#1\pgfeov{\def\pos{#1}} +\def\setpos#1\pgfeov{\def\pgfpie@pos{#1}} \pgfkeyslet{/pos/.@cmd}{\setpos} -\def\setstyle#1\pgfeov{\def\style{#1}} +\def\setstyle#1\pgfeov{\def\pgfpie@style{#1}} \pgfkeyslet{/style/.@cmd}{\setstyle} -\def\setbeforenumber#1\pgfeov{\def\beforenumber{#1}} +\def\setbeforenumber#1\pgfeov{\def\pgfpie@beforenumber{#1}} \pgfkeyslet{/before number/.@cmd}{\setbeforenumber} -\def\setafternumber#1\pgfeov{\def\afternumber{#1}} +\def\setafternumber#1\pgfeov{\def\pgfpie@afternumber{#1}} \pgfkeyslet{/after number/.@cmd}{\setafternumber} \def\settext#1\pgfeov{\xdef\pgfpie@text{#1}} @@ -154,7 +154,7 @@ chart by using PGF/Tikz package.] \def\setsum#1\pgfeov{\xdef\pgfpie@sum{#1}} \pgfkeyslet{/sum/.@cmd}{\setsum} -\def\setrotate#1\pgfeov{\xdef\rotate{#1}} +\def\setrotate#1\pgfeov{\xdef\pgfpie@rotate{#1}} \pgfkeyslet{/rotate/.@cmd}{\setrotate} \newif\ifpolar @@ -179,6 +179,16 @@ chart by using PGF/Tikz package.] \fi } +\newif\ifhidenumber +\pgfkeys{/hide number/.is if=hidenumber} +\newcommand{\pgfpie@numbertext}[1] +{ + \ifhidenumber + \else + \pgfpie@beforenumber#1\pgfpie@afternumber + \fi +} + \newcommand{\pie}[2][] { % load default parameters @@ -199,6 +209,7 @@ chart by using PGF/Tikz package.] square=false, cloud=false, scale font=false, + hide number=false } % load user's parameters \pgfkeys{#1} @@ -229,10 +240,10 @@ chart by using PGF/Tikz package.] % init counters \setcounter{pgfpie@explodeLength}{0} - \foreach \e in \explode { \addtocounter{pgfpie@explodeLength}{1} } + \foreach \e in \pgfpie@explode { \addtocounter{pgfpie@explodeLength}{1} } \setcounter{pgfpie@colorLength}{0} - \foreach \c in \color { \addtocounter{pgfpie@colorLength}{1} } + \foreach \c in \pgfpie@color { \addtocounter{pgfpie@colorLength}{1} } \pgfmathsetlength{\pgfpie@angleEnd}{0} @@ -241,10 +252,10 @@ chart by using PGF/Tikz package.] \ifsquare %%%%%%%%%% SQUARE PIE BEGIN %%%%%%%%%%% - \pgfmathparse{\radius*2} + \pgfmathparse{\pgfpie@radius*2} \xdef\verticalLength{\pgfmathresult} \xdef\horizontalLength{\pgfmathresult} - \path (\pos) -- ++(-\radius, -\radius) coordinate (start); + \path (\pgfpie@pos) -- ++(-\pgfpie@radius, -\pgfpie@radius) coordinate (start); \pgfmathparse{\verticalLength * \horizontalLength / \pgfpie@sum} \let\squareUnit\pgfmathresult @@ -312,18 +323,18 @@ chart by using PGF/Tikz package.] % find explode \pgfpie@findExplode{\i} \def\cloudGap{\theexplode + 0.1} - \pgfmathparse{sqrt(\p / \pgfpie@sum) * \radius} + \pgfmathparse{sqrt(\p / \pgfpie@sum) * \pgfpie@radius} \let\cloudR\pgfmathresult \ifnum \i = 0 % first cloud - \coordinate (O) at (\pos); + \coordinate (O) at (\pgfpie@pos); \xdef\cloudRone{\cloudR} - \xdef\cloudExtendDir{180+\rotate} + \xdef\cloudExtendDir{180+\pgfpie@rotate} \else \ifnum \i = 1 % second cloud \xdef\cloudRtwo{\cloudR} - \xdef\cloudExtendDir{45+\rotate} + \xdef\cloudExtendDir{45+\pgfpie@rotate} \path (O) -- ++(\cloudExtendDir:\cloudRone+\cloudGap+\cloudRtwo) coordinate (O); \else % next cloud @@ -353,7 +364,7 @@ chart by using PGF/Tikz package.] \pgfpie@findColor{\i} \pgfpie@cloud{O}{\cloudR}{\p} - {\thecolor}{\style}{\t} + {\thecolor}{\pgfpie@style}{\t} % label \iflegend @@ -378,10 +389,10 @@ chart by using PGF/Tikz package.] } \pgfmathparse{\pgfpie@sum / \value{pgfpie@sliceLength}} \xdef\polarangle{\pgfmathresult} - \pgfmathparse{\radius / sqrt(\maxValue)} + \pgfmathparse{\pgfpie@radius / sqrt(\maxValue)} \xdef\polarRadiusUnit{\pgfmathresult} \else - \xdef\theradius{\radius} + \xdef\theradius{\pgfpie@radius} \fi \xdef\pgfpie@angleBegin{\the\pgfpie@angleEnd} @@ -404,14 +415,14 @@ chart by using PGF/Tikz package.] % find color \pgfpie@findColor{\i} - \pgfpie@slice{\pgfpie@angleBegin/\pgfpie@sum*360+\rotate} - {\the\pgfpie@angleEnd/\pgfpie@sum*360+\rotate} + \pgfpie@slice{\pgfpie@angleBegin/\pgfpie@sum*360+\pgfpie@rotate} + {\the\pgfpie@angleEnd/\pgfpie@sum*360+\pgfpie@rotate} {\p} {\t} {\theexplode} {\thecolor} {\theradius} - {\pos} + {\pgfpie@pos} \xdef\pgfpie@angleBegin{\the\pgfpie@angleEnd} } %%%%%%%%%% CIRCLE PIE END %%%%%%%%%%% @@ -428,7 +439,7 @@ chart by using PGF/Tikz package.] \foreach \p/\t [count=\i from 0] in {#2} { \pgfpie@findColor{\i} - \node[draw, fill=\thecolor, \style, below of=legendpos, label=0:\t] (legendpos) {}; + \node[draw, fill=\thecolor, \pgfpie@style, below of=legendpos, label=0:\t] (legendpos) {}; } \end{scope} \fi |