titel legende '.date("H:i:s d.m.Y").' '."\n"; $svg.=''."\n"; $height=510; $width=1110; $stats=array(); foreach($this->datas as $data){ $stats[]=$this->datastat2($data); } //max difference of values $difference=$this->getMax($stats)-$this->getMin($stats); $this->minimum=$this->getMin($stats); $this->pixelperunit=$height/$difference; $mainpoints=$difference*4; $unitperpoint=$difference/$mainpoints; $distance=$height/($mainpoints-1); $label=$this->getMax($stats); //draw y-axis for($i=0;$i<$mainpoints;$i++){ $y=50+($i*$distance); #$y=$i*11; $string="\t".'\n"; }else{ $string.=' x2="62"'." />\n".' '.$label.''."\n"; } $svg.=$string; $label-=$unitperpoint; } $this->distanceHor=$width/(sizeof($this->labels)-1); //draw x-axis $labels=$this->labels; for($i=0;$idistanceHor); $string="\t".''; $string.="\n\t".''.$labels[$i].''."\n".''."\n"; $svg.= $string; } foreach($this->datas as $key=>$data1){ $svg.=''."\n"; } $svg.='';#echo $filename; file_put_contents($filename,$svg); } private function datastat2($data){ $min=5555; $max=-5555; foreach($data as $value){ if($value<$min){ $min=$value; }elseif($value>$max){ $max=$value; } } return array('min'=>round($min,1),'max'=>round($max,1)); } private function pathFromData($data){ /*$distanceHor=46.25; $pixelperunit=47.663551401869; $minimum=11.81;*/ /*$this->distanceHor; $this->pixelperunit; $this->minimum;*/ $path=""; foreach($data as $key=>$value){ $value=(double) $value; $width=$this->rnd($key*$this->distanceHor+70); $height=$this->rnd($this->pixelperunit*($value-$this->minimum)); //echo "v: ".$value."\n"; //echo "\th: ".$height."\n"; $height=560-$height; //echo "\th: ".$height."\n";echo "v:".($value)." - h:".$height." - k:".$key." - w:".$width."\n"; if(empty($path)){ $path.="M ".$width." ".$height." L "; }else{ $path.="".$width." ".$height." "; } } return $path; } public function setData($data1,$data2=null){ $this->datas[]=$data1; if($data2!=null){ $this->datas[]=$data2; } } public function setLabels($labels){ $this->labels=$labels; } private function rnd($double){ return round($double,2); } private function getMin($stats){ if(isset($stats[0]) && isset($stats[1])){ return min($stats[0]['min'],$stats[1]['min']); }elseif (isset($stats[0])){ return $stats[0]['min']; } return 0; } private function getMax($stats){ if(isset($stats[0]) && isset($stats[1])){ return max($stats[0]['max'],$stats[1]['max']); }elseif (isset($stats[0])){ return $stats[0]['max']; } return 0; } public function getFirstDataset(){ if(isset($this->datas[0])){ return $this->datas[0]; } return null; } }//ENDOFCLASS /*function customround($number){ $number=$number-floor($number); if($number*/ /*$distance=$height/((24*2)-2); for($i=0;$i<(24*2)-1;$i++){ $y=50+($i*$distance); #$y=$i*11; $string="\t".'\n"; }else{ $string.=' x2="62"'." />\n".''."\n"; } echo $string; }*/