[texhax] Drawing colored pie chart in KOMA-Class scrreprt (preferably without manually installing pgf-pie
Suresh Govindachar
sgovindachar at yahoo.com
Sun Mar 23 00:22:24 CET 2014
> On Fri, Mar 21, 2014 at 5:02 PM, Pascal <pascal.bernhard at belug.de> asked:
[for a simple, quick way to add a 2-dimensional pie chart with colors
without having to install pgf-pie]:
> The first example works
> (http://www.texample.net/tikz/examples/pie-chart/), but I'm
> totally at a loss about how get colors into the pie chart.
> This basically does the trick, I do not aspire to fancy stuff
> like a drawn out slice, but colors I definitively would like
> to see.
[...]
> I should mention that in my case the pie chart is supposed to
> show that the markets is carved up by two companies, one
> having a 69 % market share, the other 29 %, which leaves 2 %
> for various other tiny firms. I'm not sure whether I could
> modify the example above quite easily to fit my needs, so any
> help here would also be higly appreciated.
Here's a simple tweak to that example to get colors and to illustrate
your particular "69-29-2" example:
% Pie chart
% Original Author: Robert Vollmert
% Modified to illustrate coloring the slices by Suresh Govindachar
%
\documentclass{article}
\usepackage{calc}
\usepackage{ifthen}
\usepackage{tikz}
\begin{document}
\newcommand{\slice}[5]{
\pgfmathparse{0.5*#1+0.5*#2}
\let\midangle\pgfmathresult
% slice
\draw[thick,fill=#5] (0,0) -- (#1:1) arc (#1:#2:1) -- cycle;
% outer label
\node[label=\midangle:#4] at (\midangle:1) {};
% inner label
\pgfmathparse{min((#2-#1-10)/110*(-0.3),0)}
\let\temp\pgfmathresult
\pgfmathparse{max(\temp,-0.5) + 0.8}
\let\innerpos\pgfmathresult
\node at (\midangle:\innerpos) {#3};
}
\begin{tikzpicture}[scale=3]
\newcounter{a}
\newcounter{b}
\foreach \p/\t/\c in
%
% original example with color added % {20/type A/green!20!white,
% original example with color added % 4/type B/green!80!white,
% original example with color added % 11/type C/yellow!60!black,
% original example with color added % 49/type D/blue!40!white,
% original example with color added % 16/other/red!40!white}
%
% following is for OP's needs:
{ 69/Big Company/green!80!black,
29/Start Up/blue!40!white,
2/Tiny Firms/yellow!30!white}
{
\setcounter{a}{\value{b}}
\addtocounter{b}{\p}
\slice{\thea/100*360}
{\theb/100*360}
{\p\%}{\t}{\c}
}
\end{tikzpicture}
From the TikZ document: The color green!20!white means 20\%
green and 80\% white mixed together. Such color expression are
possible since TikZ uses Uwe Kern's xcolor package, see the
documentation of that package for details on color expressions.
\end{document}
More information about the texhax
mailing list