Translations of this page?:

pchart plugin

pchart plugin by Philippe Doussaint
Insert pChart graph in your DokuWiki pages

Last updated on 2008-09-03. Provides Syntax.
Compatible with DokuWiki 2008-05-05.

Similar to avbarchart, chart, chart2, gchart.

Tagged with chart, graph.

Description

With this plugin you can create pchart graphs. You can visit pChart web site for more information.

You can see the plugin in action here : Spéléo Club Vendée. This is the first Beta release…

Requirement

PChart need GD2, so you must install it on your PHP installation.

Syntax and usage

Usage

To invoke the plugin you must use this syntax : <pchart>chart_syntax</pchart>.

Chart name

The plugin create the chart in the same namespace of the page. By defaut, the chart name is pchart_*.png.

You can force chart name like that : <pchart name=a_wiki_media_name>chart_syntax</pchart>. Don't use extension png in the wiki media name!

Alignment

You can force alignment of chart with space like Dokuwiki image :

  • <pchart>chart_syntax</pchart> standard alignment.
  • <pchart> chart_syntax </pchart> center alignment.
  • <pchart> chart_syntax</pchart> right alignment.
  • <pchart>chart_syntax </pchart> left alignment.

Rebuild and remove chart

Even, if you remove code from your page, the chart is not destroy and can be use like other image.

If you don't want to rebuild image each time your cache is restore, you must uncomment the if group lines :

//if (!@is_file($chartFullPath)) 
...
//}

Should be in a conf file for next release ;-)

But in this case, if you wan't to rebuild the chart, you must remove the chart with the media manager.

Chart syntax

The chart syntax use the : syntax separator, ; for series separator and . for decimal.

<pchart>chart_type:arg 1:…:arg n:serie 1:…:serie n</pchart>

chart_type is use to invoke the chart type, it should be like:

  • line,
  • cubic,
  • bar,
  • stackedbar,
  • limit,
  • radar,
  • or pie,

Then, argument and serie depend of the chart type.

arg define different single data for the graph, should be like :

  • Title : Set the title of the graph,
  • XLegend : Set the legend for the X axis,
  • XUnit : Set the unit for the X axis,
  • YLegend : Set the legend for the Y axis,
  • YUnit : Set the legend for the Y axis.

serie define array of values for the graph, should be like :

  • Legend Serie 1;…;Legend Serie n : Set legends for series for multi series chart.
  • Serie 1 val 1;…;Serie 1 val m : Set values for serie.
  • Axis 1 Legend;…;Axis m Legend : Set legends for axis for multi axis chart.

Line

<pchart>line:Title:XLegend:XUnit:YLegend:YUnit:Legend Serie 1;…;Legend Serie n:Serie 1 val 1;…;Serie 1 val m:…:Serie n val 1;…;Serie n val m</pchart>

Cubic line

<pchart>cubic:Title:XLegend:XUnit:YLegend:YUnit:Legend Serie 1;…;Legend Serie n:Serie 1 val 1;…;Serie 1 val m:…:Serie n val 1;…;Serie n val m</pchart>

Bar

<pchart>bar:Title:XLegend:XUnit:YLegend:YUnit:Legend Serie 1;…;Legend Serie n:Serie 1 val 1;…;Serie 1 val m:…:Serie n val 1;…;Serie n val m</pchart>

Stacked bar

<pchart>stackedbar:Title:XLegend:XUnit:YLegend:YUnit:Legend Serie 1;…;Legend Serie n:Serie 1 val 1;…;Serie 1 val m:…:Serie n val 1;…;Serie n val m</pchart>

Limit

<pchart>limit:Title:XLegend:XUnit:YLegend:YUnit:Legend Serie 1;Legend Serie 2:Serie 1 val 1;…;Serie 1 val m:Serie 2 val 1;…;Serie 2 val m</pchart>

Radar

<pchart>radar:Title:Legend Serie 1;…;Legend Serie n:Axis 1 Legend;…;Axis m Legend:Serie 1 val 1;…;Serie 1 val m:…:Serie n val 1;…;Serie n val m</pchart>

Pie

<pchart>pie:Title:Legend 1;…;Legend n:val 1;…;val n</pchart>

Download and Installation

Sorry can't upload file… Need to log?

So, setup :

  • First create the directory /lib/plugins/pchart.
  • Paste the syntax code in a new file /lib/plugins/pchart/syntax.php.
  • Download pChart 1.27 - beta libray here.
  • Unzip it and copy Font and pChart directories (and content) in /lib/plugins/pchart.
  • The plugin is ready to use.

syntax.php

<?php
/**
 * Plugin pChart: Insert pChart graph in your DokuWiki pages.
 * 
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 * @author     Philippe Doussaint <philippe.doussaint [at] freesbee [dot] fr>
 */
 
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
 
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
 
// library providing the global 'cleanID()'/'getID()'/'wikiFN()' functions:
require_once(DOKU_INC . 'inc/pageutils.php');
 
/**
 * All DokuWiki plugins to extend the parser/rendering mechanism
 * need to inherit from this class
 */
class syntax_plugin_pchart extends DokuWiki_Syntax_Plugin {
 
    function getInfo(){
 
        return array(
                'author' => 'Philippe Doussaint',
                'email'  => 'philippe.doussaint [at] freesbee [dot] fr',
                'date'   => '2008-08-22',
                'name'   => 'pChart plugin',
                'desc'   => 'Insert pChart graph in your DokuWiki pages.
                            See plugin page for syntax.',
                'url'    => 'http://www.dokuwiki.org/plugin:pChart',
                );
    }
 
    function getType(){ return 'formatting'; }
 
    function getAllowedTypes() { return array('substition'); }   
 
    function getSort() { return 208; }
 
    function connectTo($mode) { $this->Lexer->addEntryPattern('<pchart(?=[^\r\n]*?>.*?</pchart>)',$mode,'plugin_pchart'); }
 
    function postConnect() { $this->Lexer->addExitPattern('</pchart>','plugin_pchart'); } 
 
    /**
     * Handle the match
     */
    function handle($match, $state, $pos, &$handler){ 
 
        if ($state == DOKU_LEXER_UNMATCHED ) {
            //keep name (if exist?) and syntax
            list($name, $syntax) = preg_split('/>/u', $match, 2);
            //find align
            if (substr($syntax, 0, 1).substr($syntax, -1) == '  ' ) $align = 'center';
            elseif (substr($syntax, 0, 1) == ' ' ) $align = 'right';
            elseif (substr($syntax, -1) == ' ' ) $align = 'left';
            else $align = 'normal';                   
            //trim syntax
            $syntax=trim($syntax);
            //if name don't exist, we create one, else we removename=...
            if ( $name == "" ) $name = "pchart_".md5($syntax);                
            else $name=preg_replace(array('/name=/'), array(''), $name);
            //and add extension in any case
            $name .= '.png';
            return array($state,array($name, $syntax, $align)); 
        }
        return array();
    }
 
    /**
     * Create output
     */
    function render($mode, &$renderer, $data) { 
 
        if($mode == 'xhtml'){
 
            $error_level = error_reporting();
            error_reporting($error_level & ~E_NOTICE);
 
            list($state, $match) = $data;
            if ($state ==  DOKU_LEXER_UNMATCHED ) {
                list($name, $syntax, $align) = $match;
                //Just print info for debug
                //$renderer->doc .= $name."-".$syntax."-".$align; 
                // build the chart file
                $this->doChart($name, $syntax);
                // render it             
                $renderer->doc .= $this->getHtmlCode($name, $syntax, $align);
                return true;
            }
            return false;
        }
    }
 
    /**
     * Get HTML code
     */
    function getHtmlCode($name, $syntax, $align) {
 
        $chartNamespace = str_replace(":", "%3A", getNS(getID()));
        $chartWikiFullPath = $chartNamespace.'%3A'.$name;
        //Now, buil html code
        $html_code = '<a href="/lib/exe/detail.php?id='.getID().'&amp;cache=cache&amp;media='.$chartWikiFullPath.'" class="media" title="'.$name.'"><img src="/lib/exe/fetch.php?h=&amp;cache=cache&amp;media='.$chartWikiFullPath.'" class="media';
        switch ($align) {
            case 'left' : $html_code .= 'left" align="left" alt="" /></a>'; break;
            case 'right' : $html_code .= 'right" align="right" alt="" /></a>'; break;
            case 'center' : $html_code .= 'center" alt="" /></a>'; break;
            case 'normal' : $html_code .= '" alt="" /></a>'; break;
        }
        return $html_code;
    }
 
    /**
     * Do chart
     */
    function doChart($name, $syntax) {
 
        global $conf;
 
        $chartFullPath = $conf['mediadir']."/".str_replace(":", "/", getNS(getID())).'/'.$name;
        // Please Fixme ! How can I handle doku cache correctly ?
        //if (!@is_file($chartFullPath)) {
        $data=explode(":",$syntax);
        // switch chart 
        switch ($data[0]) {
            case 'line' : $this->doLine($chartFullPath, $data); break;
            case 'cubic' : $this->doCubic($chartFullPath, $data); break;
            case 'bar' : $this->doBar($chartFullPath, $data); break;
            case 'stackedbar' : $this->doStackedBar($chartFullPath, $data); break;
            case 'limit' : $this->doLimit($chartFullPath, $data); break;
            case 'radar' : $this->doRadar($chartFullPath, $data); break;
 
            case 'pie' : $this->doPie($chartFullPath, $data); break;
 
        //}
        }
        return true;
    }
 
    /* Now that's raw code from examples...
     * Sorry, It's not really clean!!    
     */
 
    /**
     * Do line
     */
    function doLine($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $xlegend = $data[2];
        $xunit = $data[3];
        $ylegend = $data[4];
        $yunit = $data[5];
        $label = explode(";", $data[6]);
        // Dataset definition      
        $DataSet = new pData;     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->AddPoint(explode(";", $data[$i]),"Serie".($i - 6));     
        }
        $DataSet->AddAllSeries();     
        $DataSet->SetAbsciseLabelSerie();     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->SetSerieName($label[$i - 7],"Serie".($i - 6));     
        }
        $DataSet->SetXAxisName($xlegend);  
        $DataSet->SetXAxisUnit($xunit);  
        $DataSet->SetYAxisName($ylegend);  
        $DataSet->SetYAxisUnit($yunit);  
 
        // Initialise the graph     
        $Test = new pChart(600,240);     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->setGraphArea(70,30,500,200);     
        $Test->drawFilledRoundedRectangle(7,7,573,233,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,575,235,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);  
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
        $Test->drawGrid(4,TRUE,230,230,230,50);  
 
        // Draw the 0 line     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
 
        // Draw the graph  
        $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());     
        $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255);     
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(510,25,$DataSet->GetDataDescription(),250,250,250);  
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);     
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
    /**
     * Do cubic
     */
    function doCubic($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $xlegend = $data[2];
        $xunit = $data[3];
        $ylegend = $data[4];
        $yunit = $data[5];
        $label = explode(";", $data[6]);
        // Dataset definition      
        $DataSet = new pData;     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->AddPoint(explode(";", $data[$i]),"Serie".($i - 6));     
        }
        $DataSet->AddAllSeries();     
        $DataSet->SetAbsciseLabelSerie();     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->SetSerieName($label[$i - 7],"Serie".($i - 6));     
        }
        $DataSet->SetXAxisName($xlegend);  
        $DataSet->SetXAxisUnit($xunit);  
        $DataSet->SetYAxisName($ylegend);  
        $DataSet->SetYAxisUnit($yunit);  
 
        // Initialise the graph     
        $Test = new pChart(600,240);     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->setGraphArea(70,30,500,200);     
        $Test->drawFilledRoundedRectangle(7,7,573,233,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,575,235,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);  
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
        $Test->drawGrid(4,TRUE,230,230,230,50);  
 
        // Draw the 0 line     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
 
        // Draw the graph  
        $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription());  
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(510,25,$DataSet->GetDataDescription(),250,250,250);  
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);     
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
    /**
     * Do bar
     */
    function doBar($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $xlegend = $data[2];
        $xunit = $data[3];
        $ylegend = $data[4];
        $yunit = $data[5];
        $label = explode(";", $data[6]);
        // Dataset definition      
        $DataSet = new pData;     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->AddPoint(explode(";", $data[$i]),"Serie".($i - 6));     
        }
        $DataSet->AddAllSeries();     
        $DataSet->SetAbsciseLabelSerie();     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->SetSerieName($label[$i - 7],"Serie".($i - 6));     
        }
        $DataSet->SetXAxisName($xlegend);  
        $DataSet->SetXAxisUnit($xunit);  
        $DataSet->SetYAxisName($ylegend);  
        $DataSet->SetYAxisUnit($yunit);  
 
        // Initialise the graph     
        $Test = new pChart(600,240);     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->setGraphArea(70,30,500,200);     
        $Test->drawFilledRoundedRectangle(7,7,573,233,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,575,235,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);  
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);     
        $Test->drawGrid(4,TRUE,230,230,230,50);  
 
        // Draw the 0 line     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
 
        // Draw the graph  
        $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE); 
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(510,25,$DataSet->GetDataDescription(),250,250,250);  
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);     
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
    /**
     * Do stacked bar
     */
    function doStackedBar($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $xlegend = $data[2];
        $xunit = $data[3];
        $ylegend = $data[4];
        $yunit = $data[5];
        $label = explode(";", $data[6]);
        // Dataset definition      
        $DataSet = new pData;     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->AddPoint(explode(";", $data[$i]),"Serie".($i - 6));     
        }
        $DataSet->AddAllSeries();
        $DataSet->SetAbsciseLabelSerie();     
        for ($i = 7; $i < count( $data ); $i++){
            $DataSet->SetSerieName($label[$i - 7],"Serie".($i - 6));     
        }
        $DataSet->SetXAxisName($xlegend);  
        $DataSet->SetXAxisUnit($xunit);  
        $DataSet->SetYAxisName($ylegend);  
        $DataSet->SetYAxisUnit($yunit);  
 
        // Initialise the graph     
        $Test = new pChart(600,240);     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->setGraphArea(70,30,500,200);     
        $Test->drawFilledRoundedRectangle(7,7,573,233,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,575,235,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);  
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,0,TRUE);     
        $Test->drawGrid(4,TRUE,230,230,230,50);  
 
        // Draw the 0 line     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8); 
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
 
        // Draw the graph  
        $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE);  
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(510,25,$DataSet->GetDataDescription(),250,250,250);
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);   
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
    /**
     * Do limit
     */
    function doLimit($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $xlegend = $data[2];
        $xunit = $data[3];
        $ylegend = $data[4];
        $yunit = $data[5];
        $label = explode(";", $data[6]);
        $serie1 = explode(";", $data[7]);
        $serie2 = explode(";", $data[8]);
 
        // Dataset definition      
        $DataSet = new pData;     
        $DataSet->AddPoint($serie1,"Serie1");  
        $DataSet->AddPoint($serie2,"Serie2");  
        $DataSet->AddAllSeries();  
        $DataSet->SetAbsciseLabelSerie();  
        $DataSet->SetSerieName($label[0],"Serie1");  
        $DataSet->SetSerieName($label[1],"Serie2");  
        $DataSet->SetXAxisName($xlegend);  
        $DataSet->SetXAxisUnit($xunit);  
        $DataSet->SetYAxisName($ylegend);  
        $DataSet->SetYAxisUnit($yunit);  
 
        // Initialise the graph     
        $Test = new pChart(600,240);     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);     
        $Test->setGraphArea(70,30,500,200);     
        $Test->drawFilledRoundedRectangle(7,7,573,233,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,575,235,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);  
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,0,TRUE);     
        $Test->drawGrid(4,TRUE,230,230,230,50);  
 
        // Draw the 0 line     
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8); 
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);     
 
        // Draw the graph  
        $Test->drawLimitsGraph($DataSet->GetData(),$DataSet->GetDataDescription(),180,180,180); 
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(510,25,$DataSet->GetDataDescription(),250,250,250);
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);   
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
    /**
     * Do radar bar
     */
    function doRadar($chartFullPath, $data) {
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        $title = $data[1];
        $label = explode(";", $data[2]);
        // Dataset definition      
        $DataSet = new pData; 
        $DataSet->AddPoint(explode(";", $data[3]),"Label");    
        for ($i = 4; $i < count( $data ); $i++){
            $DataSet->AddPoint(explode(";", $data[$i]),"Serie".($i - 3));
            $DataSet->AddSerie("Serie".($i - 3));  
        }
 
        $DataSet->SetAbsciseLabelSerie("Label");          
        for ($i = 0; $i < count( $label ); $i++){
            $DataSet->SetSerieName($label[$i],"Serie".($i+1));     
        }
 
        // Initialise the graph  
        $Test = new pChart(300,240);  
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);  
        $Test->drawFilledRoundedRectangle(7,7,273,233,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,275,235,5,230,230,230);  
        $Test->setGraphArea(35,30,185,220);  
 
        // Draw the graph  
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",8);  
        $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230);  
        $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),20,20);  
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawLegend(210,25,$DataSet->GetDataDescription(),255,255,255);  
 
        // Draw title
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",12);  
        $Test->drawTitle(60,22,$title,0,0,0,-1,8);   
 
        // Render graph
        $Test->Render($chartFullPath);  
 
        return true;
    }
 
 
    /**
     * Do pie
     */
    function doPie($chartFullPath, $data) {
 
        $title=$data[1];
        $serie1=explode(";",$data[3]);
        $serie2=explode(";",$data[2]);
 
        // Standard inclusions   
        require_once(DOKU_PLUGIN."pchart/pChart/pData.class");
        require_once(DOKU_PLUGIN."pchart/pChart/pChart.class");
 
        // Dataset definition   
        $DataSet = new pData; 
        $DataSet->AddPoint($serie1,"Serie1");  
        $DataSet->AddPoint($serie2,"Serie2");  
        $DataSet->AddAllSeries();  
        $DataSet->SetAbsciseLabelSerie("Serie2");  
 
        // Init the graph  
        $Test = new pChart(300, 240);  
        $Test->drawFilledRoundedRectangle(7,7,273,237,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,275,235,5,230,230,230);  
 
        // Draw legend
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf",10);  
        $Test->drawPieLegend(210,25,$DataSet->GetData(), $DataSet->GetDataDescription(),250,250,250);  
 
        // Draw the graph  
        $Test->setFontProperties(DOKU_PLUGIN."pchart/Fonts/tahoma.ttf"