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
随意转载~但请保留教程地址★