Saturday, June 9, 2012

Pie Chart --- three useful nodes defined by command "\psChart"

The macro \psChart defines for every value three nodes at the half angle and in distances from chartNodeI (default 0.75), 1 and chartNodeO(default 1.25) times of the radius from the origin (chartNodeI and chartNodeO will be discussed in the next post). The nodes are named as psChartInum, psChartnum and psChartOnum, where num is the number of the pie pieces (num have a value between 1 to the numbers of pie pieces, Letter I stands for Inner and O stands for Outer). These nodes will be very usefull when you add labels to the pie pieces. The following shows these nodes visually.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \begin{pspicture}(-5,-5)(5,5)
    \psChart{2,2,3,2}{}{3}
    \psdot[linecolor=red](psChart2)
    \uput[r](psChart2){\textcolor{red}{psChart2}}
    \psdot[linecolor=green](psChartI2)
    \uput[r](psChartI2){\textcolor{green}{psChartI2}}
    \psdot[linecolor=blue](psChartO2)
    \uput[r](psChartO2){\textcolor{blue}{psChartO2}}
    \psdot[linecolor=red](psChart3)
    \uput[r](psChart3){\textcolor{red}{psChart3}}
    \psdot[linecolor=green](psChartI3)
    \uput[r](psChartI3){\textcolor{green}{psChartI3}}
    \psdot[linecolor=blue](psChartO3)
    \uput[r](psChartO3){\textcolor{blue}{psChartO3}}
  \end{pspicture}
\end{document}

Fig.1 Three useful nodes defined by command \psChart.

Files Downloads: tex ps pdf

Now a practical example of plotting a pie chart will be presented.

\documentclass{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}
\begin{document}
  \begin{pspicture}(-5,-5)(5,5)
    \psChart{5,4,4,3,3}{}{3}
    \rput(psChartI1){\textcolor{red}{5}}
    \rput(psChartI2){\textcolor{red}{4}}
    \rput(psChartI3){\textcolor{red}{4}}
    \rput(psChartI4){\textcolor{red}{3}}
    \rput(psChartI5){\textcolor{red}{3}}
    \psset{nodesepA=5pt,nodesepB=-10pt}
    \rput(psChartO1){{US}}
    \rput(psChartO2){{EU}}
    \rput(psChartO3){{China}}
    \rput(psChartO4){{Japan}}
    \rput(psChartO5){{Others}}
  \end{pspicture}
\end{document}

Fig.2 A practical example of pie chart plotting.

In this example, we put the labels using the nodes which have been defined by "\psChart".

Files Downloads: tex ps pdf

Sunday, June 3, 2012

Pie chart --- the simplest use of command "\psChart"

Command "\psChart" in package pstricks-add makes plot a pie chart very simple. The syntax of this command is "\psChart[options]{values1}{values2}{radius}". "values1" is the list of date to be plotted. "vaules2" is a list of outraged pieces. For example, if you want the 1st and 5-th sector to be outraged, you can specify this parameter as "{1,5}". "radius" is the radius of the pie chart. The color used to paint the num-th pie piece is named internally as "chartFillColornum".

Now let us have a try of this command.

  \begin{pspicture}(-5,-5)(8,5)
    %Pie chart
    \psChart{1,2,2,3,1,4}{1,5}{4.75}
    %The legends
    \psframe[fillcolor=chartFillColor1,
      fillstyle=solid](5.25,-5)(6.5,-4.5)
    \uput[r](6.5,-4.75){Pie 1}
    \psframe[fillcolor=chartFillColor2,
      fillstyle=solid](5.25,-4)(6.5,-3.5)
    \uput[r](6.5,-3.75){Pie 2}
    \psframe[fillcolor=chartFillColor3,
      fillstyle=solid](5.25,-3)(6.5,-2.5)
    \uput[r](6.5,-2.75){Pie 3}
    \psframe[fillcolor=chartFillColor4,
      fillstyle=solid](5.25,-2)(6.5,-1.5)
    \uput[r](6.5,-1.75){Pie 4}
    \psframe[fillcolor=chartFillColor5,
      fillstyle=solid](5.25,-1)(6.5,-0.5)
    \uput[r](6.5,-0.75){Pie 5}
    \psframe[fillcolor=chartFillColor6,
      fillstyle=solid](5.25,0)(6.5,0.5)
    \uput[r](6.5,0.25){Pie 6}
  \end{pspicture}

Fig.1 Pie chart plots in Pstricks

In the upper example, we see that a pie chart with radius "5" is plotted accroding to data "{1,2,2,3,1,4}", and the 1-st and 5-th pie pieces is outraged. This is exactly what we expected. And with the help of variable "chartFillColornum" we produced the legends.

Files Downloads: tex ps pdf
Creative Commons License
Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.