当前位置:首页 > PHP教程 > php图像处理 > 列表

jpgraph 生成类型数据以图表走势图的形式表现出来

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-19 14:23:27 浏览: 评论:0 
  1. <?php 
  2.  
  3. /** 
  4.  *  ecshop jpgraph图表类库 
  5.  *  ============================================================== 
  6.  *  利用开源的jpgraph库实现对各类型数据以图表,走势图的形式表现出来。 
  7.  *  ============================================================== 
  8. **/ 
  9.  
  10. class cls_jpgraph 
  11.  var $db = null; 
  12.  var $ydata = array(); 
  13.  var $width = 350; 
  14.  var $height = 250; 
  15.  
  16.  var $graph = ''//图形对象 
  17.  var $piegraph = ''//丙状图形 
  18.  
  19.  var $lineplot = ''//线性对象 
  20.  var $barpot = ''//柱状对象 
  21.  var $gbplat = ''//柱状组对象 
  22.  var $txt = '';  //文本对象 
  23.  var $p1 = '';  //丙状图对象 
  24.  
  25.  var $scale = ''//图表类型? (textlin,textlog,intlin) 
  26.  var $yscale = '';   // (log,) 
  27.  var $xgrid = false; //x轴网格显示 
  28.  var $ygrid = false; //y轴网格显示 
  29.  var $title = ''//标题 
  30.  var $subtitle = ''//子标题(一般为日期) 
  31.  var $xaxis = ''//x轴名称 
  32.  var $yaxis = ''//y轴名称 
  33.  
  34.  /*margin position*/ 
  35.  var $left = 0; 
  36.  var $right = 0; 
  37.  var $top = 0; 
  38.  var $bottom = 0; 
  39.  
  40.  /** 
  41.  *构造函数 
  42.  */ 
  43.  function cls_jpgraph($width=350,$height=250) 
  44.  { 
  45.   $this->width = $width
  46.   $this->height = $height
  47.  
  48.   $this->graph = new graph($this->width,$this->height); 
  49.  
  50.  } 
  51.  
  52.  /** 
  53.  * 图表类库的构造函数 
  54.  * 
  55.  */ 
  56.  /* 
  57.  function __construct($parms,$width,$height) 
  58.  { 
  59.   cls_jpgraph($parms,$width,$height); 
  60.  } 
  61.  */ 
  62.  
  63.  /*图片基本信息设置*/ 
  64.  function set_jpgraph($scale='intlin',$title='',$subtitle='',$bgcolor='',$xaxis=''
  65.      $yaxis='',$xgrid=false,$ygrid=false,$margin='') { 
  66. //开源代码phpfensi.com 
  67.   $this->scale = $scale
  68.   $this->title = $title
  69.   $this->subtitle = $subtitle
  70.   $this->xaxis = $xaxis
  71.   $this->yaxis = $yaxis
  72.   $this->xgrid = $xgrid
  73.   $this->ygrid = $ygrid
  74.  
  75.   if(!emptyempty($scale)) { 
  76.    $this->graph->setscale($this->scale); 
  77.   } 
  78.   else { 
  79.   $this->graph->setscale('intlin'); 
  80.   } 
  81.   $this->graph->xgrid->show($this->xgrid,$this->xgrid); 
  82.   $this->graph->ygrid->show($this->ygrid,$this->ygrid); 
  83.  
  84.   if(!emptyempty($bgcolor)) { 
  85.    $this->graph->setmargincolor($bgcolor); 
  86.   } 
  87.  
  88.   /*如果手工设置了图片位置*/ 
  89.   if(is_array($margin)) { 
  90.    while(list($key,$val) = each($margin)) { 
  91.     $this->$key = $val
  92.    } 
  93.    $this->graph->setmargin($this->left,$this->right,$this->top,$this->bottom); 
  94.   } 
  95.  
  96.   if(!emptyempty($this->title)) { 
  97.    $this->graph->title->set($this->title); 
  98.   } 
  99.   if(!emptyempty($this->subtitle)) { 
  100.    $this->graph->subtitle->set($this->subtitle); 
  101.   } 
  102.   else { 
  103.    $this->graph->subtitle->set('('.date('y-m-d').')'); //默认子标题设置为当前日期 
  104.   } 
  105.   if(!emptyempty($this->xaxis)) { 
  106.    $this->graph->xaxis->title->set($this->xaxis); 
  107.   } 
  108.   if(!emptyempty($this->yaxis)) { 
  109.    $this->graph->yaxis->title->set($this->yaxis); 
  110.   } 
  111.  
  112.  } 
  113.  
  114.  /*创建线性关系图表(linear plot)*/ 
  115.  function create_lineplot($parms,$color='black',$weight=1) 
  116.  { 
  117.   $this->ydata = $parms
  118.   $this->lineplot = new lineplot($this->ydata); 
  119.   $this->lineplot->setcolor($color); 
  120.   $this->lineplot->setweight($weight); 
  121.  
  122.   return $this->lineplot; 
  123.  } 
  124.  
  125.  /*创建柱状图表(bar pot)*/ 
  126.  function create_barpot($parms,$color='black',$width='0'
  127.  { 
  128.   $this->ydata = $parms
  129.   $this->barpot = new barplot($this->ydata); 
  130.   $this->barpot->setfillcolor($color); 
  131.   if(!emptyempty($width)) { 
  132.    $this->barpot->setwidth($width); 
  133.   } 
  134.  
  135.   return $this->barpot; 
  136.  } 
  137.  
  138.  /*创建数据柱状图表组*/ 
  139.  function create_bargroup($plotarr,$width='0.8'
  140.  { 
  141.   $this->gbplot = new groupbarplot($plotarr); 
  142.   $this->gbplot->setwidth($width); 
  143.  
  144.   return $this->gbplot; 
  145.  } 
  146.  
  147.  /*创建文本内容*/ 
  148.  function create_text($str,$postion='',$color='black'
  149.  { 
  150.   $this->txt = new text($str); 
  151.  
  152.   if(is_array($postion)) { 
  153.    while(list($key,$val) = each($postion)) { 
  154.     $this->$key = $val
  155.    } 
  156.    $this->txt->setpos($this->left,$this->top); 
  157.   } 
  158.   else { 
  159.    $this->txt->setpos(10,20); 
  160.   } 
  161.   $this->txt->setcolor($color); 
  162.  
  163.   $this->graph->add($this->txt); 
  164.  } 
  165.  
  166.  /*创建丙状图表*/ 
  167.  function create_pie($parms,$title,$type='3d',$size='0.5',$center='0.5',$width='350',$height='250'
  168.  { 
  169.   $this->width = $width
  170.   $this->height = $height
  171.  
  172.   $this->piegraph = new piegraph(300,200); 
  173.   $this->piegraph->setshadow(); 
  174.  
  175.   $this->piegraph->title->set($title); 
  176.  
  177.   if('3d' != $type) { 
  178.    $this->p1 = new pieplot($parms); 
  179.    $this->piegraph->add($this->p1); 
  180.   } 
  181.   else { 
  182.    $this->p1 = new pieplot3d($parms); 
  183.    $this->p1->setsize($size); 
  184.    $this->p1->setcenter($center); 
  185. //   $this->p1->setlegends($gdatelocale->getshortmonth()); 
  186.    $this->piegraph->add($this->p1); 
  187.   } 
  188.   $this->piegraph->stroke(); 
  189.  } 
  190.  
  191.  function get_auth_code($length=4) 
  192.  { 
  193.   $spam = new antispam(); 
  194.   $chars = $spam->rand($length); 
  195.  
  196.   if$spam->stroke() === false ) { 
  197.    return false; 
  198.   } 
  199.  
  200.   return $chars
  201.  } 
  202.  
  203.  /*完成图形创建并显示*/ 
  204.  function display($obj
  205.  { 
  206.   $this->graph->add($obj); 
  207.   $this->graph->stroke(); 
  208.  } 
  209.  
  210. ?> 

Tags: jpgraph php图表 php走势图

分享到: