1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
<?php
/**
* Bar graph implementation for the Horde_Graph package.
*
* $Horde: framework/Graph/Graph/Plot/bar.php,v 1.5.12.4 2006/01/01 21:28:18 jan Exp $
*
* Copyright 2002-2006 Chuck Hagenbuch <chuck@horde.org>
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Chuck Hagenbuch <chuck@horde.org>
* @since Horde 3.0
* @package Horde_Graph
*/
class Horde_Graph_Plot_bar {
var $graph;
var $_color = 'blue';
var $_outline = 'black';
var $_width = 10;
var $_offset = 0;
var $_dataset;
function Horde_Graph_Plot_bar(&$graph, $params)
{
$this->graph = &$graph;
foreach ($params as $param => $value) {
$key = '_' . $param;
$this->$key = $value;
}
}
function draw($minY = false)
{
$data = $this->graph->_data['y'][$this->_dataset];
$barWidth = $this->_width;
$barOffset = $this->_offset * $barWidth;
$u = 0;
$v = 0;
$count = count($data);
for ($i = 0; $i < $count; $i++) {
$x = $i;
if ($minY === false || $data[$i] >= $minY) {
$y = $data[$i];
$this->graph->translate($x, $y);
$x = $x - ($barWidth / 2) + $barOffset;
$height = $this->graph->_graphBottom - $y;
$this->graph->img->rectangle($x, $y, $barWidth, $height, $this->_outline, $this->_color);
}
}
}
}
|