Location: PHPKode > projects > phpMyVisites > phpmv2/core/include/graphs/GraphBarAndCurb.class.php
<?php
/* 
 * phpMyVisites : website statistics and audience measurements
 * Copyright (C) 2002 - 2006
 * http://www.phpmyvisites.net/ 
 * phpMyVisites is free software (license GNU/GPL)
 * Authors : phpMyVisites team
*/

// $Id: GraphBarAndCurb.class.php 80 2006-09-14 14:49:54Z matthieu_ $


require_once INCLUDE_PATH . "/libs/artichow/BarPlot.class.php";
require_once INCLUDE_PATH . "/libs/artichow/LinePlot.class.php";
require_once INCLUDE_PATH . "/core/include/graphs/PmvGraph.class.php";

class GraphBarAndCurb extends PmvGraph
{
	function GraphBarAndCurb( $width, $height, $showAllLabels = true)
	{
		parent::PmvGraph($width, $height);
		$this->showLabelBar2 = $showAllLabels;
	}

	function setData( $a_data )
	{
		$this->x = $a_data['axis'];
		$this->y1 = $a_data['data1']['data'];
		$this->y2 = $a_data['data2']['data'];
		$this->y1Legend = $a_data['data1']['legend'];
		$this->y2Legend = $a_data['data2']['legend'];
		$this->title = $a_data['title'];
		
		if(isset($a_data['interval']))
		{
			$this->interval = $a_data['interval'];
		}
		/*if($this->interval)
		{
			foreach($this->x as $key => $value)
			{
				$n[$key] = substr($value, 0, 6);
			}
			$this->x = $n;
		}*/
	}

	function process()
	{
		parent::process();
		
		$this->setPmvTitle( $this->graph );
		$this->setPmvBackgroundGradient($this->graph);
		

		/**
		 * group (bar + line)
		 */
		$group = new PlotGroup();
		
		$this->setPmvGroupProperties( $group );

		$group->axis->right->setColor(new Red);
		$group->axis->right->label->setFont(new Font2);


		/**
		 * line
		 */
		$plot = new LinePlot($this->y2, LINEPLOT_MIDDLE);

		$plot->setColor(new Red);
		$plot->setThickness(1);
		$plot->setYAxis(PLOT_RIGHT);

		$group->legend->add($plot, $this->y2Legend, LEGEND_MARK);
		$group->add($plot);


		/**
		 * vertical bar
		 */
		$plot = new BarPlot($this->y1);

		$plot->grid->setType( LINE_DASHED );

		$this->setPmvPadding( $plot );
		$this->setPmvBackgroundGradient( $plot );
		$this->setPmvBarBorderProperties( $plot );
		$this->setPmvBarShadowProperties( $plot );
		$this->setPmvLabelProperties( $plot, $this->y1 );
		$this->setPmvBarGradient( $plot );
		$this->setPmvBarSize( $plot );
		
		//$plot->xAxis->setColor( new Color(  50, 97, 243) );
		//$plot->yAxis->setColor( new Color(  50, 97, 243) );
		//$plot->xAxis->label->setFont($this->font20);

		$group->axis->bottom->setLabelText($this->x);
		$group->axis->bottom->setPadding(0,0,100,0);
	
		
		// display one axis label on two because too long for Mar 04 Apr 04 etc.
		if(isset($this->interval))
		{
			$group->axis->bottom->label->setInterval(2);
		}
		
		$group->legend->add($plot, $this->y1Legend, LEGEND_BACKGROUND);
		$group->add($plot);
		

		/**
		 * add group to graph
		 */
		
		$this->graph->add($group);
	}

	function display()
	{
		$this->draw();
	}
}
?>
Return current item: phpMyVisites