From 80d08de83e0ab96124235b2cfbadd8f26b257511 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 4 Jan 2015 11:42:37 +0100 Subject: [PATCH] tikz/pie-chart: added --- tikz/pie-chart/Makefile | 33 +++ tikz/pie-chart/README.md | 5 + tikz/pie-chart/pgf-pie.sty | 439 +++++++++++++++++++++++++++++++++++ tikz/pie-chart/pie-chart.png | Bin 0 -> 36009 bytes tikz/pie-chart/pie-chart.tex | 9 + 5 files changed, 486 insertions(+) create mode 100644 tikz/pie-chart/Makefile create mode 100644 tikz/pie-chart/README.md create mode 100644 tikz/pie-chart/pgf-pie.sty create mode 100644 tikz/pie-chart/pie-chart.png create mode 100644 tikz/pie-chart/pie-chart.tex diff --git a/tikz/pie-chart/Makefile b/tikz/pie-chart/Makefile new file mode 100644 index 0000000..ffd58b2 --- /dev/null +++ b/tikz/pie-chart/Makefile @@ -0,0 +1,33 @@ +SOURCE = pie-chart +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-width=$(WIDTH) --export-plain-svg=$(SOURCE)1.svg + rsvg-convert -a -w 720 -f svg $(SOURCE)1.svg -o $(SOURCE).svg + rm $(SOURCE)1.svg \ No newline at end of file diff --git a/tikz/pie-chart/README.md b/tikz/pie-chart/README.md new file mode 100644 index 0000000..8f194a0 --- /dev/null +++ b/tikz/pie-chart/README.md @@ -0,0 +1,5 @@ +Compiled example +---------------- +![Example](pie-chart.png) + +See https://code.google.com/p/pgf-pie/ \ No newline at end of file diff --git a/tikz/pie-chart/pgf-pie.sty b/tikz/pie-chart/pgf-pie.sty new file mode 100644 index 0000000..6a669e3 --- /dev/null +++ b/tikz/pie-chart/pgf-pie.sty @@ -0,0 +1,439 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Start of pgf-pie.sty +% +% Some LaTeX macros for pie chart by using PGF/Tikz package. +% Home page of project: http://pgf-pie.googlecode.com/ +% Author: Xu Yuan +% + +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{pgf-pie}[2011/10/02 v0.2 Some LaTeX macros for pie +chart by using PGF/Tikz package.] + +\RequirePackage{tikz} +\RequirePackage{ifthen} +\RequirePackage{scalefnt} + + +% args: +% #1: begin angle +% #2: end angle +% #3: number +% #4: label +% #5: explode +% #6: fill color +% #7: radius +% #8: center +\newcommand{\pgfpie@slice}[8]{ + \pgfmathparse{0.5*(#1)+0.5*(#2)} + \let\midangle\pgfmathresult + + \path (#8) -- ++(\midangle:#5) coordinate(O); + + \pgfmathparse{#7+#5} + \let\radius\pgfmathresult + + % slice + \draw[line join=round, fill=#6, \style] (O) -- ++(#1:#7) arc (#1:#2:#7) -- cycle; + + \pgfmathparse{min(((#2)-(#1)-10)/110*(-0.3),0)} + \let\temp\pgfmathresult + \pgfmathparse{(max(\temp,-0.5) + 0.8)*#7} + \let\innerpos\pgfmathresult + + \ifthenelse{\equal{\pgfpie@text}{inside}} + { + % label and number together + \path (O) -- ++(\midangle:\innerpos) node + {\scalefont{#3}\shortstack{#4\\\beforenumber#3\afternumber}}; + } + { + % label + \iflegend + \else + \path (O) -- ++ (\midangle:\radius) + node[inner sep=0, \pgfpie@text=\midangle:#4]{}; + \fi + + % number + \path (O) -- ++(\midangle:\innerpos) node + {\scalefont{#3}\beforenumber#3\afternumber}; + } +} + +\newcommand{\pgfpie@findColor}[1] +{ + \pgfmathparse{int(mod(#1,\value{pgfpie@colorLength}))} + \let\ci\pgfmathresult + \foreach \c [count=\j from 0] in \color { + \ifnum \j=\ci + \xdef\thecolor{\c} + \thecolor + \breakforeach + \fi + } +} + +\newcommand{\pgfpie@findExplode}[1] +{ + \pgfmathparse{int(mod(#1,\value{pgfpie@explodeLength}))} + \let\ei\pgfmathresult + \foreach \e [count=\j from 0] in \explode { + \ifnum \j=\ei + \xdef\theexplode{\e} + \breakforeach + \fi + } +} + +% #1: bottom left point +% #2: size +% #3: number +% #4: color +% #5: text +\newcommand{\pgfpie@square}[5] +{ + \ifthenelse{\equal{\pgfpie@text}{inside}} + { + \draw[fill=#4, \style] (#1) rectangle node + {\scalefont{#3}\shortstack{#5\\\beforenumber#3\afternumber}} ++(#2); + } + { + \draw[fill=#4, \style] (#1) rectangle node + {\scalefont{#3}\beforenumber#3\afternumber} ++(#2); + } +} + +% #1: pos +% #2: radius +% #3: number +% #4: color +% $5: style +% $6: label +\newcommand{\pgfpie@cloud}[6] +{ + \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}\beforenumber#3\afternumber}; + } +} + +\newlength{\pgfpie@angleEnd} +\newcounter{pgfpie@explodeLength} +\newcounter{pgfpie@colorLength} +\newcounter{pgfpie@sliceLength} + +\def\setexplode#1\pgfeov{\def\explode{#1}} +\pgfkeyslet{/explode/.@cmd}{\setexplode} + +\def\setcolor#1\pgfeov{\def\color{#1}} +\pgfkeyslet{/color/.@cmd}{\setcolor} + +\def\setradius#1\pgfeov{\def\radius{#1}} +\pgfkeyslet{/radius/.@cmd}{\setradius} + +\def\setpos#1\pgfeov{\def\pos{#1}} +\pgfkeyslet{/pos/.@cmd}{\setpos} + +\def\setstyle#1\pgfeov{\def\style{#1}} +\pgfkeyslet{/style/.@cmd}{\setstyle} + +\def\setbeforenumber#1\pgfeov{\def\beforenumber{#1}} +\pgfkeyslet{/before number/.@cmd}{\setbeforenumber} + +\def\setafternumber#1\pgfeov{\def\afternumber{#1}} +\pgfkeyslet{/after number/.@cmd}{\setafternumber} + +\def\settext#1\pgfeov{\xdef\pgfpie@text{#1}} +\pgfkeyslet{/text/.@cmd}{\settext} + +\def\setsum#1\pgfeov{\xdef\pgfpie@sum{#1}} +\pgfkeyslet{/sum/.@cmd}{\setsum} + +\def\setrotate#1\pgfeov{\xdef\rotate{#1}} +\pgfkeyslet{/rotate/.@cmd}{\setrotate} + +\newif\ifpolar +\pgfkeys{/polar/.is if=polar} + +\newif\iflegend + +\newif\ifsquare +\pgfkeys{/square/.is if=square} + +\newif\ifcloud +\pgfkeys{/cloud/.is if=cloud} + +\newif\ifscalefont +\pgfkeys{/scale font/.is if=scalefont} +\let\scalefontorg\scalefont +\renewcommand{\scalefont}[1] +{ + \ifscalefont + \pgfmathparse{#1 / \pgfpie@sum * 3 + 0.9} + \scalefontorg{\pgfmathresult} + \fi +} + +\newcommand{\pie}[2][] +{ + % load default parameters + \pgfkeys{ + explode=0, + color={blue!60, cyan!60, yellow!60, orange!60, red!60, + blue!60!cyan!60, cyan!60!yellow!60, red!60!cyan!60, + red!60!blue!60, orange!60!cyan!60}, + radius=3, + pos={0,0}, + style={thick}, + before number=, + after number=, + text=label, + sum=100, + rotate=0, + polar=false, + square=false, + cloud=false, + scale font=false, + } + % load user's parameters + \pgfkeys{#1} + % add percentage automatically + \ifthenelse{\equal{\pgfpie@sum}{100}} + { + \pgfkeys{after number=\%} + \pgfkeys{#1} + }{} + + % legend or not + \ifthenelse{\equal{\pgfpie@text}{legend}} + {\legendtrue} + {\legendfalse} + + % handle sum + \ifthenelse{\equal{\pgfpie@sum}{auto}} + { + % sum all input + \xdef\pgfpie@sum{0} + \foreach \p/\t in {#2} + { + \pgfmathparse{\pgfpie@sum + \p} + \xdef\pgfpie@sum{\pgfmathresult} + } + } + {} + + % init counters + \setcounter{pgfpie@explodeLength}{0} + \foreach \e in \explode { \addtocounter{pgfpie@explodeLength}{1} } + + \setcounter{pgfpie@colorLength}{0} + \foreach \c in \color { \addtocounter{pgfpie@colorLength}{1} } + + \pgfmathsetlength{\pgfpie@angleEnd}{0} + + \setcounter{pgfpie@sliceLength}{0} + \foreach \p/\e in {#2} { \addtocounter{pgfpie@sliceLength}{1} } + + \ifsquare + %%%%%%%%%% SQUARE PIE BEGIN %%%%%%%%%%% + \pgfmathparse{\radius*2} + \xdef\verticalLength{\pgfmathresult} + \xdef\horizontalLength{\pgfmathresult} + \path (\pos) -- ++(-\radius, -\radius) coordinate (start); + \pgfmathparse{\verticalLength * \horizontalLength / \pgfpie@sum} + \let\squareUnit\pgfmathresult + + % drawing loop + \foreach \p/\t [count=\i from 0] in {#2} + { + \pgfpie@findColor{\i} + + \ifthenelse{\lengthtest{\verticalLength cm > \horizontalLength cm}} + { + \pgfmathparse{\p * \squareUnit / \horizontalLength} + \let\height\pgfmathresult + + \pgfpie@square{start}{\horizontalLength,\height} + {\p} + {\thecolor} + {\t} + %label + \iflegend + \else + \ifthenelse{\equal{\pgfpie@text}{inside}} + {} + { + \path (start) -- ++(\horizontalLength,\height*0.5) node[inner + sep=0, \pgfpie@text=0:\t]{}; + } + \fi + + \pgfmathparse{\verticalLength - \height} + \xdef\verticalLength{\pgfmathresult} + \path (start) -- ++(0, \height) coordinate (start); + } + { + \pgfmathparse{\p * \squareUnit / \verticalLength } + \let\width\pgfmathresult + + \pgfpie@square{start}{\width,\verticalLength} + {\p} + {\thecolor} + {\t} + %label + \iflegend + \else + \ifthenelse{\equal{\pgfpie@text}{inside}} + {} + { + \path (start) -- ++(\width*0.5,\verticalLength) node[inner + sep=0, \pgfpie@text=90:\t]{}; + } + \fi + + \pgfmathparse{\horizontalLength - \width} + \xdef\horizontalLength{\pgfmathresult} + \path (start) -- ++(\width, 0) coordinate (start); + } + } + + %%%%%%%%%% SQUARE PIE END %%%%%%%%%%% + \else + \ifcloud + %%%%%%%%%% CLOUD PIE BGEIN %%%%%%%%%%% + % drawing loop + \foreach \p/\t [count=\i from 0] in {#2} + { + % find explode + \pgfpie@findExplode{\i} + \def\cloudGap{\theexplode + 0.1} + \pgfmathparse{sqrt(\p / \pgfpie@sum) * \radius} + \let\cloudR\pgfmathresult + \ifnum \i = 0 + % first cloud + \coordinate (O) at (\pos); + \xdef\cloudRone{\cloudR} + \xdef\cloudExtendDir{180+\rotate} + \else + \ifnum \i = 1 + % second cloud + \xdef\cloudRtwo{\cloudR} + \xdef\cloudExtendDir{45+\rotate} + \path (O) -- ++(\cloudExtendDir:\cloudRone+\cloudGap+\cloudRtwo) coordinate (O); + \else + % next cloud + \pgfmathparse{\cloudRone+\cloudGap+\cloudRtwo} + \let\la\pgfmathresult + \pgfmathparse{\cloudRone+\cloudGap+\cloudR} + \let\lb\pgfmathresult + \pgfmathparse{\cloudRtwo+\cloudGap+\cloudR} + \let\lc\pgfmathresult + \pgfmathparse{\la^2+\lc^2-\lb^2} + \let\tmp\pgfmathresult + \pgfmathparse{180 - acos(\tmp / 2 / \la / \lc)} + \let\cloudRot\pgfmathresult + \ifodd \i + \pgfmathparse{-\cloudRot} + \let\cloudRot\pgfmathresult + \fi + \pgfmathparse{\cloudExtendDir - \cloudRot} + \xdef\cloudExtendDir{\pgfmathresult} + \path (O) -- ++(\cloudExtendDir:\lc) coordinate (O); + \xdef\cloudRone{\cloudRtwo} + \xdef\cloudRtwo{\cloudR} + \fi + \fi + + % find color + \pgfpie@findColor{\i} + + \pgfpie@cloud{O}{\cloudR}{\p} + {\thecolor}{\style}{\t} + + % label + \iflegend + \else + \ifthenelse{\equal{\pgfpie@text}{inside}} + {} + { + \path (O) -- ++(\cloudExtendDir:\cloudR) + node[inner sep=0, \pgfpie@text=\cloudExtendDir:\t] {}; + } + \fi + } + %%%%%%%%%% CLOUD PIE BGEIN %%%%%%%%%%% + \else + %%%%%%%%%% CIRCLE PIE BGEIN %%%%%%%%%%% + \ifpolar + \xdef\maxValue{0} + \foreach \p/\e in {#2} { + \ifnum \maxValue < \p + \xdef\maxValue{\p} + \fi + } + \pgfmathparse{\pgfpie@sum / \value{pgfpie@sliceLength}} + \xdef\polarangle{\pgfmathresult} + \pgfmathparse{\radius / sqrt(\maxValue)} + \xdef\polarRadiusUnit{\pgfmathresult} + \else + \xdef\theradius{\radius} + \fi + + \xdef\pgfpie@angleBegin{\the\pgfpie@angleEnd} + % drawing loop + \foreach \p/\t [count=\i from 0] in {#2} + { + \pgfmathsetlength{\pgfpie@angleEnd}{\pgfpie@angleBegin} + \ifpolar + % Polar area diagram + \pgfmathaddtolength{\pgfpie@angleEnd}{\polarangle} + \pgfmathparse{sqrt(\p) * \polarRadiusUnit} + \xdef\theradius{\pgfmathresult} + \else + % normal pie + \pgfmathaddtolength{\pgfpie@angleEnd}{\p} + \fi + + % find explode + \pgfpie@findExplode{\i} + + % find color + \pgfpie@findColor{\i} + \pgfpie@slice{\pgfpie@angleBegin/\pgfpie@sum*360+\rotate} + {\the\pgfpie@angleEnd/\pgfpie@sum*360+\rotate} + {\p} + {\t} + {\theexplode} + {\thecolor} + {\theradius} + {\pos} + \xdef\pgfpie@angleBegin{\the\pgfpie@angleEnd} + } + %%%%%%%%%% CIRCLE PIE END %%%%%%%%%%% + \fi + \fi + + % legend + \iflegend + \coordinate[xshift=0.8cm, + yshift=(\value{pgfpie@sliceLength}*0.5+1)*0.5cm] (legendpos) at + (current bounding box.east); + + \begin{scope}[node distance=0.5cm] + \foreach \p/\t [count=\i from 0] in {#2} + { + \pgfpie@findColor{\i} + \node[draw, fill=\thecolor, \style, below of=legendpos, label=0:\t] (legendpos) {}; + } + \end{scope} + \fi +} + +%%% End of pgf-pie.sty +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/tikz/pie-chart/pie-chart.png b/tikz/pie-chart/pie-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..a073c7a35efd0e1966b3f1e87615b9a753b6f427 GIT binary patch literal 36009 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 literal 0 HcmV?d00001 diff --git a/tikz/pie-chart/pie-chart.tex b/tikz/pie-chart/pie-chart.tex new file mode 100644 index 0000000..6701667 --- /dev/null +++ b/tikz/pie-chart/pie-chart.tex @@ -0,0 +1,9 @@ +\documentclass[varwidth=true, border=2pt]{standalone} + +\usepackage{pgf-pie} + +\begin{document} +\begin{tikzpicture} + \pie{10/A, 20/B, 30/C, 40/D} +\end{tikzpicture} +\end{document}