| [ PHPXref.com ] | [ Generated: Sun Jul 20 20:17:16 2008 ] | [ Simple Spreadsheet 0.3 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 <?php 2 /*======================================================================= 3 // File: JPGRAPH_ERROR.PHP 4 // Description: Error plot extension for JpGraph 5 // Created: 2001-01-08 6 // Author: Johan Persson (johanp@aditus.nu) 7 // Ver: $Id: jpgraph_error.php 461 2006-02-04 12:06:40Z ljp $ 8 // 9 // Copyright (c) Aditus Consulting. All rights reserved. 10 //======================================================================== 11 */ 12 13 //=================================================== 14 // CLASS ErrorPlot 15 // Description: Error plot with min/max value for 16 // each datapoint 17 //=================================================== 18 class ErrorPlot extends Plot { 19 var $errwidth=2; 20 //--------------- 21 // CONSTRUCTOR 22 function ErrorPlot(&$datay,$datax=false) { 23 $this->Plot($datay,$datax); 24 $this->numpoints /= 2; 25 } 26 //--------------- 27 // PUBLIC METHODS 28 29 // Gets called before any axis are stroked 30 function PreStrokeAdjust(&$graph) { 31 if( $this->center ) { 32 $a=0.5; $b=0.5; 33 ++$this->numpoints; 34 } else { 35 $a=0; $b=0; 36 } 37 $graph->xaxis->scale->ticks->SetXLabelOffset($a); 38 $graph->SetTextScaleOff($b); 39 //$graph->xaxis->scale->ticks->SupressMinorTickMarks(); 40 } 41 42 // Method description 43 function Stroke(&$img,&$xscale,&$yscale) { 44 $numpoints=count($this->coords[0])/2; 45 $img->SetColor($this->color); 46 $img->SetLineWeight($this->weight); 47 48 if( isset($this->coords[1]) ) { 49 if( count($this->coords[1])!=$numpoints ) 50 JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints); 51 //("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints"); 52 else 53 $exist_x = true; 54 } 55 else 56 $exist_x = false; 57 58 for( $i=0; $i<$numpoints; ++$i) { 59 if( $exist_x ) 60 $x=$this->coords[1][$i]; 61 else 62 $x=$i; 63 64 if( !is_numeric($x) || 65 !is_numeric($this->coords[0][$i*2]) || !is_numeric($this->coords[0][$i*2+1]) ) { 66 continue; 67 } 68 69 $xt = $xscale->Translate($x); 70 $yt1 = $yscale->Translate($this->coords[0][$i*2]); 71 $yt2 = $yscale->Translate($this->coords[0][$i*2+1]); 72 $img->Line($xt,$yt1,$xt,$yt2); 73 $img->Line($xt-$this->errwidth,$yt1,$xt+$this->errwidth,$yt1); 74 $img->Line($xt-$this->errwidth,$yt2,$xt+$this->errwidth,$yt2); 75 } 76 return true; 77 } 78 } // Class 79 80 81 //=================================================== 82 // CLASS ErrorLinePlot 83 // Description: Combine a line and error plot 84 // THIS IS A DEPRECATED PLOT TYPE JUST KEPT FOR 85 // BACKWARD COMPATIBILITY 86 //=================================================== 87 class ErrorLinePlot extends ErrorPlot { 88 var $line=null; 89 //--------------- 90 // CONSTRUCTOR 91 function ErrorLinePlot(&$datay,$datax=false) { 92 $this->ErrorPlot($datay,$datax); 93 // Calculate line coordinates as the average of the error limits 94 $n = count($datay); 95 for($i=0; $i < $n; $i+=2 ) { 96 $ly[]=($datay[$i]+$datay[$i+1])/2; 97 } 98 $this->line=new LinePlot($ly,$datax); 99 } 100 101 //--------------- 102 // PUBLIC METHODS 103 function Legend(&$graph) { 104 if( $this->legend != "" ) 105 $graph->legend->Add($this->legend,$this->color); 106 $this->line->Legend($graph); 107 } 108 109 function Stroke(&$img,&$xscale,&$yscale) { 110 parent::Stroke($img,$xscale,$yscale); 111 $this->line->Stroke($img,$xscale,$yscale); 112 } 113 } // Class 114 115 116 //=================================================== 117 // CLASS LineErrorPlot 118 // Description: Combine a line and error plot 119 //=================================================== 120 class LineErrorPlot extends ErrorPlot { 121 var $line=null; 122 //--------------- 123 // CONSTRUCTOR 124 // Data is (val, errdeltamin, errdeltamax) 125 function LineErrorPlot(&$datay,$datax=false) { 126 $ly=array(); $ey=array(); 127 $n = count($datay); 128 if( $n % 3 != 0 ) { 129 JpGraphError::RaiseL(4002); 130 //('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3'); 131 } 132 for($i=0; $i < $n; $i+=3 ) { 133 $ly[]=$datay[$i]; 134 $ey[]=$datay[$i]+$datay[$i+1]; 135 $ey[]=$datay[$i]+$datay[$i+2]; 136 } 137 $this->ErrorPlot($ey,$datax); 138 $this->line=new LinePlot($ly,$datax); 139 } 140 141 //--------------- 142 // PUBLIC METHODS 143 function Legend(&$graph) { 144 if( $this->legend != "" ) 145 $graph->legend->Add($this->legend,$this->color); 146 $this->line->Legend($graph); 147 } 148 149 function Stroke(&$img,&$xscale,&$yscale) { 150 parent::Stroke($img,$xscale,$yscale); 151 $this->line->Stroke($img,$xscale,$yscale); 152 } 153 } // Class 154 155 156 /* EOF */ 157 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| [ Powered by PHPXref - Served by Debian GNU/Linux ] |