/**
  * Create a PieChart
  *
  * @param array $data associative array contianing label and values
  */
 protected function PieChart($data)
 {
     $DataSet = new pData();
     $Canvas = new GDCanvas(400, 200, false);
     $Chart = new PieChart(400, 200, $Canvas);
     $Chart->setFontProperties(dirname(__FILE__) . '/pchart/Fonts/DroidSans.ttf', 8);
     $DataSet->AddPoints(array_values($data), 'Serie1');
     $DataSet->AddPoints(array_keys($data), 'Serie2');
     $DataSet->AddAllSeries();
     $DataSet->SetAbscissaLabelSeries("Serie2");
     $Chart->drawBasicPieGraph($DataSet->getData(), $DataSet->GetDataDescription(), 120, 100, 60, PIE_PERCENTAGE);
     $Chart->drawPieLegend(230, 15, $DataSet->GetData(), $DataSet->GetDataDescription(), new Color(250));
     header('Content-Type: image/png');
     $Chart->Render('');
 }
예제 #2
0
 public function testDrawBasicPieGraph()
 {
     // Dataset definition
     $DataSet = new pData();
     $DataSet->addPoints(array(10, 2, 3, 5, 3), "Serie1");
     $DataSet->addPoints(array("Jan", "Feb", "Mar", "Apr", "May"), "Serie2");
     $DataSet->AddAllSeries();
     $DataSet->setAbscissaLabelSeries("Serie2");
     $this->assertEquals(array(0 => array('Serie1' => 10, 'Name' => 0, 'Serie2' => 'Jan'), 1 => array('Serie1' => 2, 'Name' => 1, 'Serie2' => 'Feb'), 2 => array('Serie1' => 3, 'Name' => 2, 'Serie2' => 'Mar'), 3 => array('Serie1' => 5, 'Name' => 3, 'Serie2' => 'Apr'), 4 => array('Serie1' => 3, 'Name' => 4, 'Serie2' => 'May')), $DataSet->getData());
     $this->assertEquals(array(0 => 'Serie1', 1 => 'Serie2'), $DataSet->getDataDescription()->values);
     // Initialise the graph
     $canvas = new TestCanvas();
     $Test = new PieChart(300, 200, $canvas);
     $Test->loadColorPalette(dirname(__FILE__) . "/../sample/softtones.txt");
     // Draw the pie chart
     $Test->setFontProperties("Fonts/tahoma.ttf", 8);
     $Test->drawBasicPieGraph($DataSet->GetData(), $DataSet->GetDataDescription(), 120, 100, ShadowProperties::NoShadow(), 70, PIE_PERCENTAGE, new Color(255, 255, 218));
     $Test->drawPieLegend(230, 15, $DataSet->GetData(), $DataSet->GetDataDescription(), new Color(250));
     $this->assertEquals('0ec1d5de67ae53239101143106d5ee4a', md5($canvas->getActionLog()));
 }