Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I want to create a pie chart in LaTeX. Do you know a package which manages that? I tried datatool which uses tikz as backend but seems to be unusable due to mysterious floating point errors.

share|improve this question
I recommend asking about the problems with datatool. –  Will Robertson Nov 21 '10 at 3:21
This is really a non-answer, so I’ll just add it as a comment: I strongly recommend not creating a pie chart at all; there are far better alternatives. See the article ‘Save the Pies for Dessert’ at perceptualedge.com/articles/08-21-07.pdf for a thorough discussion. –  Karl Ove Hufthammer Dec 14 '11 at 10:39
@KarlOveHufthammer A pie chart has two advantages: people like it and you can see with one glance whether the pieces of the pie add up to 100%. All other charts force me to start my own calculation, instead of listening to the speech. –  Keks Dose May 21 '13 at 9:39
add comment

5 Answers

Use the package pgf-pie, which is not on CTAN, but on Google Code.

    \pie{10/A, 20/B, 30/C, 40/D}


Note however that there are conflicts with this package and any other package that introduces the command \text—e.g.: amstext. In order to mediate these effects edit pgf-pie.sty, replacing all occurrences of: \text with: \textASDF.

share|improve this answer
The latest version of the package doesn't seem to redefine \text. –  Torbjørn T. Nov 21 '12 at 7:05
This is a great package! The manual is really clear and easy. What a pity that this package is not on CTAN. –  Keks Dose May 21 '13 at 9:42
add comment

An piechart example with pgf/tikz from texample.net by Robert Vollmert is a good starting point. I'll just quote it here for completeness:

% Pie chart
% Author: Robert Vollmert


  % slice
  \draw[thick,fill=black!10] (0,0) -- (#1:1) arc (#1:#2:1) -- cycle;

  % outer label
  \node[label=\midangle:#4] at (\midangle:1) {};

  % inner label
  \pgfmathparse{max(\temp,-0.5) + 0.8}
  \node at (\midangle:\innerpos) {#3};


\foreach \p/\t in {20/type A, 4/type B, 11/type C,
                   49/type D, 16/other}



which looks like
enter image description here

share|improve this answer
This is a good start. I would like to be able to enter 49.5 instead of 49 percent as well as be able to set the colors. –  The Dude Sep 30 '11 at 17:07
add comment

Here's an example taken from the datatool manual:






\caption{A pie chart}


enter image description here

share|improve this answer
add comment

Run with xelatex



\ncline{psChartO1}{psChart1}\nput{0}{psChartO1}{1000 (34.5\%)}
\ncline{psChartO2}{psChart2}\nput{150}{psChartO2}{500 (17.2\%)}
\ncline{psChartO3}{psChart3}\nput{-90}{psChartO3}{600 (20.7\%)}
\ncline{psChartO4}{psChart4}\nput{0}{psChartO4}{450 (15.5\%)}
\ncline{psChartO5}{psChart5}\nput{0}{psChartO5}{150 (5.2\%)}
\ncline{psChartO6}{psChart6}\nput{0}{psChartO6}{200 (6.9\%)}


enter image description here

share|improve this answer
add comment

There are several packages which master that.

The first one can generate charts from data files.

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.