;;; pie.skb -- Pie charts. ;;; -*- coding: iso-8859-1 -*- ;;; ;;; Copyright 2006, 2009 Ludovic Courtès <ludovic.courtes@laas.fr> ;;; ;;; ;;; This file is part of Skribilo. ;;; ;;; Skribilo is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; Skribilo is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Skribilo. If not, see <http://www.gnu.org/licenses/>. ;;; FIXME: This is a stub and must be completed! (chapter :title [Pie Charts] :ident "pie-charts" (p [Skribilo contains a pie-chart formatting package, located in the ,(tt [(skribilo package pie)]) module. It allows users to produces represent numeric data as pie charts as in the following example:] (disp (pie :title [Use of Document Formatting Systems] :fingers? #t :labels 'outside :initial-angle 90 :ident "pie-skribilo-rulez" (slice :weight 10 :color "red" :detach? #t (bold [Skribilo])) (slice :weight 6 :color "green" "Skribe") (slice :weight 6 :color "blue" "Lout") (slice :weight 4 :color "lightgrey" "LaTeX") (slice :weight 2 :color "yellow" "Docbook") (slice :weight 1 :color "black" "others")))) (p [A default implementation, which uses ,(ref :text [Ploticus] :url "http://ploticus.sf.net") as an external program, is available for all engines. There is also a specific implementation for the Lout engine which relies on Lout's own pie-chart package. In the latter case, you don't need to have Ploticus installed, but you need it in the former.]) (p [Currently it only supports slice-coloring, but support for textures (particularly useful for black & white printouts) could be added in the future.]) (section :title [Syntax] :info-node [Pie Syntax] (p [Let us start with a simple example:] (example-produce (example :legend "Example of a pie chart" (prgm :file "src/pie1.skb")) (disp (include "src/pie1.skb")))) (p [This illustrates the three markups provided by the ,(tt [pie]) package, namely ,(tt [pie]), ,(tt [slice]), and ,(tt [sliceweight]). This last markup returns the weight of the slice it is used in, be it as a percentage or an absolute value. Note that the ,(tt [:total]) option of ,(tt [pie]) can be used to create pie charts no entirely filled.]) (p [Various options allow the pie layout to be controlled:] (example-produce (example :legend "Specifying the layout of a pie chart" (prgm :file "src/pie2.skb")) (disp (include "src/pie2.skb")))) (p [The available markups and their options are described below.]) (doc-markup 'pie `((:title ,[The title of the pie chart.]) (:initial-angle ,[The initial angle of the pie, in degrees.]) (:total ,[If a number, specifies the "weight" of the whole pie; in this case, if the pie's slices don't add up to that number, then part of the pie is shown as empty. If ,(code [#f]), the total that is used is the sum of the weight of each slice.]) (:radius ,[The pie's radius. How this value is interpreted depends on the engine used.]) (:fingers? ,[Indicates whether to add "fingers" (arrows) from labels to slices when labels are outside of slices.]) (:labels ,[A symbol indicating where slice labels are rendered: ,(code [outside]) to have them appear outside of the pie, ,(code [inside]) to have them appear inside the pie, and ,(code [legend]) to have them appear in a separate legend.])) :source "skribilo/package/pie.scm" :see-also '(slice)) (doc-markup 'slice `((#!rest label ,[The label of the node. It can contain arbitrary markup, notably instances of ,(markup-ref "sliceweight"). However, some engines, such as the Ploticus-based rendering, are not able to render markup other than ,(markup-ref "sliceweight"); consequently, they render the label as though it were markup-free.]) (:weight ,[An integer indicating the weight of this slice.]) (:color ,[The background color of the slice.]) (:detach? ,[Indicates whether the slice should be detached from the pie.])) :source "skribilo/package/pie.scm" :see-also '(pie sliceweight)) (p [As seen in the examples above, the body of a ,(markup-ref "slice") markup can contain instances of ,(markup-ref "sliceweight") to represent the weight of the slice:]) (doc-markup 'sliceweight `((:percentage? ,[Indicates whether the slice's weight should be shown as a percentage of the total pie weight or as a raw weight.])) :see-also '(slice) :source "skribilo/package/pie.scm"))) ;; Local Variables: ;; ispell-local-dictionary: "american" ;; End: