jpgraph 生成类型数据以图表走势图的形式表现出来
<?php /** * ecshop jpgraph图表类库 * ============================================================== * 利用开源的jpgraph库实现对各类型数据以图表,走势图的形式表现出来。 * ============================================================== * */ class cls_jpgraph { var $db = null; var $ydata = array(); var $width = 350; var $height = 250; var $graph = ''; //图形对象 var $piegraph = ''; //丙状图形 var $lineplot = ''; //线性对象 var $barpot = ''; //柱状对象 var $gbplat = ''; //柱状组对象 var $txt = ''; //文本对象 var $p1 = ''; //丙状图对象 var $scale = ''; //图表类型? (textlin,textlog,intlin) var $yscale = ''; // (log,) var $xgrid = false; //x轴网格显示 var $ygrid = false; //y轴网格显示 var $title = ''; //标题 var $subtitle = ''; //子标题(一般为日期) var $xaxis = ''; //x轴名称 var $yaxis = ''; //y轴名称 /*margin position*/ var $left = 0; var $right = 0; var $top = 0; var $bottom = 0; /** *构造函数 */ function cls_jpgraph($width = 350, $height = 250) { $this->width = $width; $this->height = $height; $this->graph = new graph($this->width, $this->height); } /** * 图表类库的构造函数 * */ /* function __construct($parms,$width,$height) { cls_jpgraph($parms,$width,$height); } */ /*图片基本信息设置*/ function set_jpgraph($scale = 'intlin', $title = '', $subtitle = '', $bgcolor = '', $xaxis = '', $yaxis = '', $xgrid = false, $ygrid = false, $margin = '') { //开源代码phprm.com $this->scale = $scale; $this->title = $title; $this->subtitle = $subtitle; $this->xaxis = $xaxis; $this->yaxis = $yaxis; $this->xgrid = $xgrid; $this->ygrid = $ygrid; if (!emptyempty($scale)) { $this->graph->setscale($this->scale); } else { $this->graph->setscale('intlin'); } $this->graph->xgrid->show($this->xgrid, $this->xgrid); $this->graph->ygrid->show($this->ygrid, $this->ygrid); if (!emptyempty($bgcolor)) { $this->graph->setmargincolor($bgcolor); } /*如果手工设置了图片位置*/ if (is_array($margin)) { while (list($key, $val) = each($margin)) { $this->$key = $val; } $this->graph->setmargin($this->left, $this->right, $this->top, $this->bottom); } if (!emptyempty($this->title)) { $this->graph->title->set($this->title); } if (!emptyempty($this->subtitle)) { $this->graph->subtitle->set($this->subtitle); } else { $this->graph->subtitle->set('(' . date('y-m-d') . ')'); //默认子标题设置为当前日期 } if (!emptyempty($this->xaxis)) { $this->graph->xaxis->title->set($this->xaxis); } if (!emptyempty($this->yaxis)) { $this->graph->yaxis->title->set($this->yaxis); } } /*创建线性关系图表(linear plot)*/ function create_lineplot($parms, $color = 'black', $weight = 1) { $this->ydata = $parms; $this->lineplot = new lineplot($this->ydata); $this->lineplot->setcolor($color); $this->lineplot->setweight($weight); return $this->lineplot; } /*创建柱状图表(bar pot)*/ function create_barpot($parms, $color = 'black', $width = '0') { $this->ydata = $parms; $this->barpot = new barplot($this->ydata); $this->barpot->setfillcolor($color); if (!emptyempty($width)) { $this->barpot->setwidth($width); } return $this->barpot; } /*创建数据柱状图表组*/ function create_bargroup($plotarr, $width = '0.8') { $this->gbplot = new groupbarplot($plotarr); $this->gbplot->setwidth($width); return $this->gbplot; } /*创建文本内容*/ function create_text($str, $postion = '', $color = 'black') { $this->txt = new text($str); if (is_array($postion)) { while (list($key, $val) = each($postion)) { $this->$key = $val; } $this->txt->setpos($this->left, $this->top); } else { $this->txt->setpos(10, 20); } $this->txt->setcolor($color); $this->graph->add($this->txt); } /*创建丙状图表*/ function create_pie($parms, $title, $type = '3d', $size = '0.5', $center = '0.5', $width = '350', $height = '250') { $this->width = $width; $this->height = $height; $this->piegraph = new piegraph(300, 200); $this->piegraph->setshadow(); $this->piegraph->title->set($title); if ('3d' != $type) { $this->p1 = new pieplot($parms); $this->piegraph->add($this->p1); } else { $this->p1 = new pieplot3d($parms); $this->p1->setsize($size); $this->p1->setcenter($center); // $this->p1->setlegends($gdatelocale->getshortmonth()); $this->piegraph->add($this->p1); } $this->piegraph->stroke(); } function get_auth_code($length = 4) { $spam = new antispam(); $chars = $spam->rand($length); if ($spam->stroke() === false) { return false; } return $chars; } /*完成图形创建并显示*/ function display($obj) { $this->graph->add($obj); $this->graph->stroke(); } }
教程链接:http://www.phprm.com/tuxiang/fs4462.html
随意转载~但请保留教程地址★