亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jpgraph_bar.php

?? asterisk用 的voip記費軟件
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php/*=======================================================================// File:	JPGRAPH_BAR.PHP// Description:	Bar plot extension for JpGraph// Created: 	2001-01-08// Author:	Johan Persson (johanp@aditus.nu)// Ver:		$Id: jpgraph_bar.php,v 1.54.2.22 2004/10/20 20:52:17 aditus Exp $//// License:	This code is released under QPL// Copyright (C) 2001,2002,2003 Johan Persson//========================================================================*/require_once('jpgraph_plotband.php');// Pattern for BarsDEFINE('PATTERN_DIAG1',1);DEFINE('PATTERN_DIAG2',2);DEFINE('PATTERN_DIAG3',3);DEFINE('PATTERN_DIAG4',4);DEFINE('PATTERN_CROSS1',5);DEFINE('PATTERN_CROSS2',6);DEFINE('PATTERN_CROSS3',7);DEFINE('PATTERN_CROSS4',8);DEFINE('PATTERN_STRIPE1',9);DEFINE('PATTERN_STRIPE2',10);//===================================================// CLASS BarPlot// Description: Main code to produce a bar plot //===================================================class BarPlot extends Plot {    var $width=0.4; // in percent of major ticks    var $abswidth=-1; // Width in absolute pixels    var $fill=false,$fill_color="lightblue"; // Default is to fill with light blue    var $ybase=0; // Bars start at 0     var $align="center";    var $grad=false,$grad_style=1;    var $grad_fromcolor=array(50,50,200),$grad_tocolor=array(255,255,255);    var $bar_shadow=false;    var $bar_shadow_color="black";    var $bar_shadow_hsize=3,$bar_shadow_vsize=3;	    var $valuepos='top';    var $iPattern=-1,$iPatternDensity=80,$iPatternColor='black';	//---------------// CONSTRUCTOR    function BarPlot(&$datay,$datax=false) {	$this->Plot($datay,$datax);			++$this->numpoints;    }//---------------// PUBLIC METHODS		    // Set a drop shadow for the bar (or rather an "up-right" shadow)    function SetShadow($color="black",$hsize=3,$vsize=3,$show=true) {	$this->bar_shadow=$show;	$this->bar_shadow_color=$color;	$this->bar_shadow_vsize=$vsize;	$this->bar_shadow_hsize=$hsize;			// Adjust the value margin to compensate for shadow	$this->value->margin += $vsize;    }		    // DEPRECATED use SetYBase instead    function SetYMin($aYStartValue) {	//die("JpGraph Error: Deprecated function SetYMin. Use SetYBase() instead.");    		$this->ybase=$aYStartValue;    }    // Specify the base value for the bars    function SetYBase($aYStartValue) {	$this->ybase=$aYStartValue;    }	    function Legend(&$graph) {	if( $this->grad && $this->legend!="" && !$this->fill ) {	    $color=array($this->grad_fromcolor,$this->grad_tocolor);	    // In order to differentiate between gradients and cooors specified as an RGB triple	    $graph->legend->Add($this->legend,$color,"",-$this->grad_style,				$this->legendcsimtarget,$this->legendcsimalt);	}	elseif( $this->fill_color && $this->legend!="" ) {	    if( is_array($this->fill_color) ) {		$graph->legend->Add($this->legend,$this->fill_color[0],"",0,				    $this->legendcsimtarget,$this->legendcsimalt);	    }	    else {		$graph->legend->Add($this->legend,$this->fill_color,"",0,				    $this->legendcsimtarget,$this->legendcsimalt);		    }	}    }    // Gets called before any axis are stroked    function PreStrokeAdjust(&$graph) {	parent::PreStrokeAdjust($graph);	// If we are using a log Y-scale we want the base to be at the	// minimum Y-value unless the user have specifically set some other	// value than the default.	if( substr($graph->axtype,-3,3)=="log" && $this->ybase==0 )	    $this->ybase = $graph->yaxis->scale->GetMinVal();			// For a "text" X-axis scale we will adjust the	// display of the bars a little bit.	if( substr($graph->axtype,0,3)=="tex" ) {	    // Position the ticks between the bars	    $graph->xaxis->scale->ticks->SetXLabelOffset(0.5,0);	    // Center the bars 	    if( $this->align == "center" )	    	$graph->SetTextScaleOff(0.5-$this->width/2);						    elseif( $this->align == "right" )	    	$graph->SetTextScaleOff(1-$this->width);				}	else {	    // We only set an absolute width for linear and int scale	    // for text scale the width will be set to a fraction of	    // the majstep width.	    if( $this->abswidth == -1 ) {                // Not set		// set width to a visuable sensible default		$this->abswidth = $graph->img->plotwidth/(2*count($this->coords[0]));	    }	}    }    function Min() {	$m = parent::Min();	if( $m[1] >= $this->ybase )	    $m[1] = $this->ybase;	return $m;	    }    function Max() {	$m = parent::Max();	if( $m[1] <= $this->ybase )	    $m[1] = $this->ybase;	return $m;	    }		    // Specify width as fractions of the major stepo size    function SetWidth($aFractionWidth) {	$this->width=$aFractionWidth;    }	    // Specify width in absolute pixels. If specified this    // overrides SetWidth()    function SetAbsWidth($aWidth) {	$this->abswidth=$aWidth;    }		    function SetAlign($aAlign) {	$this->align=$aAlign;    }	    function SetNoFill() {	$this->grad = false;	$this->fill_color=false;	$this->fill=false;    }		    function SetFillColor($aColor) {	$this->fill = true ;	$this->fill_color=$aColor;    }	    function SetFillGradient($from_color,$to_color,$style) {	$this->grad=true;	$this->grad_fromcolor=$from_color;	$this->grad_tocolor=$to_color;	$this->grad_style=$style;    }	    function SetValuePos($aPos) {	$this->valuepos = $aPos;    }    function SetPattern($aPattern, $aColor='black'){	if( is_array($aPattern) ) {	    $n = count($aPattern);	    $this->iPattern = array();	    $this->iPatternDensity = array();	    if( is_array($aColor) ) {		$this->iPatternColor = array();		if( count($aColor) != $n ) {		    JpGraphError::Raise('NUmber of colors is not the same as the number of patterns in BarPlot::SetPattern()');		}	    }	    else		$this->iPatternColor = $aColor;	    for( $i=0; $i < $n; ++$i ) {		$this->_SetPatternHelper($aPattern[$i], $this->iPattern[$i], $this->iPatternDensity[$i]);		if( is_array($aColor) ) {		    $this->iPatternColor[$i] = $aColor[$i];		}	    }	}	else {	    $this->_SetPatternHelper($aPattern, $this->iPattern, $this->iPatternDensity);	    $this->iPatternColor = $aColor;	}    }    function _SetPatternHelper($aPattern, &$aPatternValue, &$aDensity){	switch( $aPattern ) {	    case PATTERN_DIAG1:		$aPatternValue= 1;		$aDensity = 90;		break;	    case PATTERN_DIAG2:		$aPatternValue= 1;		$aDensity = 75;		break;	    case PATTERN_DIAG3:		$aPatternValue= 2;		$aDensity = 90;		break;	    case PATTERN_DIAG4:		$aPatternValue= 2;		$aDensity = 75;		break;	    case PATTERN_CROSS1:		$aPatternValue= 8;		$aDensity = 90;		break;	    case PATTERN_CROSS2:		$aPatternValue= 8;		$aDensity = 78;		break;	    case PATTERN_CROSS3:		$aPatternValue= 8;		$aDensity = 65;		break;	    case PATTERN_CROSS4:		$aPatternValue= 7;		$aDensity = 90;		break;	    case PATTERN_STRIPE1:		$aPatternValue= 5;		$aDensity = 90;		break;	    case PATTERN_STRIPE2:		$aPatternValue= 5;		$aDensity = 75;		break;	    default:		JpGraphError::Raise('Unknown pattern specified in call to BarPlot::SetPattern()');	}    }    function Stroke(&$img,&$xscale,&$yscale) { 			$numpoints = count($this->coords[0]);	if( isset($this->coords[1]) ) {	    if( count($this->coords[1])!=$numpoints )		JpGraphError::Raise("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])."Number of Y-points:$numpoints");	    else		$exist_x = true;	}	else 	    $exist_x = false;					$numbars=count($this->coords[0]);	// Use GetMinVal() instead of scale[0] directly since in the case	// of log scale we get a correct value. Log scales will have negative	// values for values < 1 while still not representing negative numbers.	if( $yscale->GetMinVal() >= 0 ) 	    $zp=$yscale->scale_abs[0]; 	else {	    $zp=$yscale->Translate(0);	}	if( $this->abswidth > -1 ) {	    $abswidth=$this->abswidth;	}	else	    $abswidth=round($this->width*$xscale->scale_factor,0);	// Count potential pattern array to avoid doing the count for each iteration	if( is_array($this->iPattern) ) {	    $np = count($this->iPattern);	}						for($i=0; $i < $numbars; ++$i) { 	    // If value is NULL, or 0 then don't draw a bar at all 	    if ($this->coords[0][$i] === null ||		$this->coords[0][$i] === '' ||		$this->coords[0][$i] === 0 ) continue;    	    if( $exist_x ) $x=$this->coords[1][$i];	    else $x=$i;				    $x=$xscale->Translate($x);	    if( !$xscale->textscale ) {	    	if($this->align=="center")		    $x -= $abswidth/2;		elseif($this->align=="right")		    $x -= $abswidth;				    }	    // Stroke fill color and fill gradient	    $pts=array(		$x,$zp,		$x,$yscale->Translate($this->coords[0][$i]),		$x+$abswidth,$yscale->Translate($this->coords[0][$i]),		$x+$abswidth,$zp);	    if( $this->grad ) {		$grad = new Gradient($img);		$grad->FilledRectangle($pts[2],$pts[3],				       $pts[6],$pts[7],				       $this->grad_fromcolor,$this->grad_tocolor,$this->grad_style); 	    }	    elseif( !empty($this->fill_color) ) {		if(is_array($this->fill_color)) {		    $img->PushColor($this->fill_color[$i % count($this->fill_color)]);		} else {		    $img->PushColor($this->fill_color);		}		$img->FilledPolygon($pts);		$img->PopColor();	    } 				    // Remember value of this bar	    $val=$this->coords[0][$i];	    if( !empty($val) && !is_numeric($val) ) {		JpGraphError::Raise('All values for a barplot must be numeric. You have specified value['.$i.'] == \''.$val.'\'');	    }	    // Determine the shadow	    if( $this->bar_shadow && $val != 0) {		$ssh = $this->bar_shadow_hsize;		$ssv = $this->bar_shadow_vsize;		// Create points to create a "upper-right" shadow		if( $val > 0 ) {		    $sp[0]=$pts[6];		$sp[1]=$pts[7];		    $sp[2]=$pts[4];		$sp[3]=$pts[5];		    $sp[4]=$pts[2];		$sp[5]=$pts[3];		    $sp[6]=$pts[2]+$ssh;	$sp[7]=$pts[3]-$ssv;		    $sp[8]=$pts[4]+$ssh;	$sp[9]=$pts[5]-$ssv;		    $sp[10]=$pts[6]+$ssh;	$sp[11]=$pts[7]-$ssv;		} 		elseif( $val < 0 ) {		    $sp[0]=$pts[4];		$sp[1]=$pts[5];		    $sp[2]=$pts[6];		$sp[3]=$pts[7];		    $sp[4]=$pts[0];		$sp[5]=$pts[1];		    $sp[6]=$pts[0]+$ssh;	$sp[7]=$pts[1]-$ssv;		    $sp[8]=$pts[6]+$ssh;	$sp[9]=$pts[7]-$ssv;		    $sp[10]=$pts[4]+$ssh;	$sp[11]=$pts[5]-$ssv;		}		if( is_array($this->bar_shadow_color) ) {		    $numcolors = count($this->bar_shadow_color);		    if( $numcolors == 0 ) {			JpGraphError::Raise('You have specified an empty array for shadow colors in the bar plot.');		    }		    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);		}		else {		    $img->PushColor($this->bar_shadow_color);		}		$img->FilledPolygon($sp);		$img->PopColor();	    }				    // Stroke the pattern	    if( is_array($this->iPattern) ) {		$f = new RectPatternFactory();		if( is_array($this->iPatternColor) ) {		    $pcolor = $this->iPatternColor[$i % $np];		}		else		    $pcolor = $this->iPatternColor;		$prect = $f->Create($this->iPattern[$i % $np],$pcolor,1);		$prect->SetDensity($this->iPatternDensity[$i % $np]);		if( $val < 0 ) {		    $rx = $pts[0];		    $ry = $pts[1];		}		else {		    $rx = $pts[2];		    $ry = $pts[3];		}		$width = abs($pts[4]-$pts[0])+1;		$height = abs($pts[1]-$pts[3])+1;		$prect->SetPos(new Rectangle($rx,$ry,$width,$height));		$prect->Stroke($img);	    }	    else {		if( $this->iPattern > -1 ) {		    $f = new RectPatternFactory();		    $prect = $f->Create($this->iPattern,$this->iPatternColor,1);		    $prect->SetDensity($this->iPatternDensity);		    if( $val < 0 ) {			$rx = $pts[0];			$ry = $pts[1];		    }		    else {			$rx = $pts[2];			$ry = $pts[3];		    }		    $width = abs($pts[4]-$pts[0])+1;		    $height = abs($pts[1]-$pts[3])+1;		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));		    $prect->Stroke($img);		}	    }	    // Stroke the outline of the bar	    if( is_array($this->color) )		$img->SetColor($this->color[$i % count($this->color)]);	    else		$img->SetColor($this->color);	    $pts[] = $pts[0];	    $pts[] = $pts[1];	    if( $this->weight > 0 ) {		$img->SetLineWeight($this->weight);		$img->Polygon($pts);	    }				    // Determine how to best position the values of the individual bars	    $x=$pts[2]+($pts[4]-$pts[2])/2;	    if( $this->valuepos=='top' ) {		$y=$pts[3];		if( $img->a === 90 ) {		    if( $val < 0 )			$this->value->SetAlign('right','center');					    else			$this->value->SetAlign('left','center');					}		$this->value->Stroke($img,$val,$x,$y);	    }	    elseif( $this->valuepos=='max' ) {		$y=$pts[3];		if( $img->a === 90 ) {		    if( $val < 0 )			$this->value->SetAlign('left','center');		    else			$this->value->SetAlign('right','center');		    		}		else {		    $this->value->SetAlign('center','top');		}		$this->value->SetMargin(-3);		$this->value->Stroke($img,$val,$x,$y);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女激情18p| 精品国产伦一区二区三区观看方式| 欧美不卡一二三| 成人午夜看片网址| 日韩avvvv在线播放| 国产精品高清亚洲| 色www精品视频在线观看| 免费在线一区观看| 亚洲精品国产精品乱码不99| 337p日本欧洲亚洲大胆精品| 欧美性大战久久| 成人高清av在线| 国产精品自拍网站| 人人爽香蕉精品| 亚洲综合色区另类av| 欧美另类久久久品| 不卡电影一区二区三区| 精品一区二区免费看| 天天av天天翘天天综合网色鬼国产| 制服丝袜日韩国产| 色婷婷综合久久久中文一区二区 | 久久亚洲一区二区三区明星换脸 | 国产精品全国免费观看高清 | 日本成人中文字幕| 依依成人综合视频| 国产精品福利av| 久久久久久久av麻豆果冻| 666欧美在线视频| 欧美三级中文字| 欧美自拍偷拍一区| 色哟哟一区二区在线观看 | 一区二区不卡在线播放| 国产精品亲子伦对白| 国产日韩欧美精品综合| 久久精品视频一区二区三区| 精品女同一区二区| 精品国产乱码久久久久久久| 日韩欧美中文字幕精品| 99亚偷拍自图区亚洲| 从欧美一区二区三区| 高清成人在线观看| 天堂va蜜桃一区二区三区| 一区二区国产盗摄色噜噜| 亚洲男人天堂一区| 亚洲一区精品在线| 国产精品视频看| 国产精品久久久久aaaa樱花| 日韩一区欧美小说| 亚洲欧美乱综合| 亚洲一区二区三区四区在线| 午夜精品久久久久影视| 日韩 欧美一区二区三区| 综合久久综合久久| 久久久综合激的五月天| 国产三级三级三级精品8ⅰ区| 7777精品伊人久久久大香线蕉 | 国产传媒久久文化传媒| 粉嫩一区二区三区在线看| 99精品国产视频| 国产一区福利在线| 成人黄色电影在线| 日本二三区不卡| 国产不卡在线播放| 99久久久久久99| 欧美性videosxxxxx| 7777精品伊人久久久大香线蕉| 91美女精品福利| 欧美精选在线播放| 欧美va亚洲va| 国产精品理伦片| 国产调教视频一区| 日韩欧美中文一区二区| 国产性天天综合网| 久久久久久久久久电影| 国产精品福利电影一区二区三区四区| 国产午夜精品一区二区三区四区| 欧美精品一二三| 国产色爱av资源综合区| 亚洲另类一区二区| 美国三级日本三级久久99| 国产91对白在线观看九色| 欧美在线影院一区二区| 日韩三级.com| 一区二区三区在线不卡| 久久99精品久久久久久国产越南 | 懂色av一区二区夜夜嗨| 国产一区91精品张津瑜| 激情文学综合丁香| 色哟哟在线观看一区二区三区| 91香蕉视频污| 日韩一区二区免费在线观看| 中文字幕一区二区三区av| 中文字幕色av一区二区三区| 日韩黄色免费电影| av激情亚洲男人天堂| 精品剧情在线观看| 久久人人爽爽爽人久久久| 亚洲国产一区二区a毛片| 国产精品主播直播| 91精品国产一区二区三区香蕉| 91精品国产丝袜白色高跟鞋| 国产精品乱人伦一区二区| 精品一区二区三区免费视频| 久久免费午夜影院| 亚洲午夜久久久久中文字幕久| 日韩精品电影在线| 91免费版在线| 欧美韩日一区二区三区| 久久国产福利国产秒拍| 岛国精品一区二区| 日韩精品一区二区三区在线播放 | 久久 天天综合| 国产一区二区精品久久99| 91精品婷婷国产综合久久竹菊| 日韩欧美国产精品一区| 亚洲午夜免费电影| 91精品办公室少妇高潮对白| 国产精品午夜在线| 国产尤物一区二区在线| 日韩精品一区在线| 日韩电影免费一区| 3atv一区二区三区| 五月天婷婷综合| 在线免费观看成人短视频| 欧美一区三区四区| 日韩综合小视频| 成人三级在线视频| 久久久久久久久久久电影| 激情欧美一区二区| 精品国产sm最大网站| 精品一区二区三区不卡 | 国产乱人伦精品一区二区在线观看 | 国产在线不卡一区| 欧美电视剧免费观看| 日本91福利区| 欧美videos中文字幕| 老色鬼精品视频在线观看播放| 不卡av在线网| 中文字幕制服丝袜成人av| 懂色av中文一区二区三区| 国产精品区一区二区三| 91免费观看在线| 亚洲主播在线观看| 欧美久久一二区| 日本va欧美va欧美va精品| 日韩欧美视频一区| 国产一区二区三区在线观看免费视频| 91黄色免费版| 石原莉奈在线亚洲二区| 日韩欧美一级特黄在线播放| 久久99热这里只有精品| 欧美图区在线视频| 日韩高清不卡在线| 亚洲激情校园春色| 韩国欧美国产一区| 中文字幕国产一区二区| 91视频.com| 日韩av在线发布| 国产亚洲精久久久久久| 美女视频第一区二区三区免费观看网站 | 欧美日韩卡一卡二| 另类小说综合欧美亚洲| 欧美日韩国产电影| 亚洲精品久久嫩草网站秘色| 国产精品综合网| 亚洲欧美日韩在线不卡| 在线播放国产精品二区一二区四区| 国产精品灌醉下药二区| 欧美日韩久久一区二区| 韩国精品免费视频| 最好看的中文字幕久久| 欧美另类变人与禽xxxxx| 黑人巨大精品欧美一区| 日韩美女视频一区二区在线观看| 一区二区三区在线看| 欧美不卡激情三级在线观看| 成人自拍视频在线观看| 亚洲chinese男男1069| 欧美日韩亚州综合| 国产一区在线观看麻豆| 亚洲综合在线观看视频| www.欧美亚洲| 老色鬼精品视频在线观看播放| 欧美大片一区二区三区| 96av麻豆蜜桃一区二区| 美女高潮久久久| 亚洲一区自拍偷拍| 日本一区二区久久| 日韩一区二区三区免费观看| 成人18视频在线播放| 久久精品国产精品亚洲精品| 亚洲视频精选在线| 久久九九久精品国产免费直播| 国内精品国产成人国产三级粉色| 久久亚洲精品国产精品紫薇| 色综合久久久网| 国产v综合v亚洲欧| 美女视频免费一区| 亚洲国产精品久久人人爱| 欧美日韩国产另类一区|