PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图等

此文为转载,仅作保存文档使用,转自:http://blog.csdn.net/aoshilang2249/article/details/46956163


注意:原文中提到配置php.ini中的include_path,亲测不需要配置(gd2需要开启),只需要将下载的文件引入项目即可



JpGraph简介

      JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序。



JpGraph的配置
(1)修改文件php.ini
      在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph。



(2)检查PHP是否支持GD库

      在php.ini文件中找到语句;extension=php_gd2.dll。把上述语句前的;号去掉,即去掉注释。如果因为PHP版本不同而找不到此语句,则可直接添加extension=php_gd2.dll
 
(3)修改文件jpgraph_gb2312.php
找到函数:function gb2utf8($gb)
把函数修改为:
   function gb2utf8($gb) {
    return $gb;
 
    }

即不使用gb2编码方式转utf8方式的那段代码。



折线图

[php]  view plain  copy
 print ?
  1. <?php  
  2. require_once ("jpgraph/jpgraph.php");  
  3. require_once ("jpgraph/jpgraph_line.php");  
  4.    
  5. $data1 = array(523,634,371,278,685,587,490,256,398,545,367,577); //第一条曲线的数组  
  6.    
  7. $graph = new Graph(500,300);   
  8. $graph->SetScale("textlin");  
  9. $graph->SetShadow();     
  10. $graph->img->SetMargin(60,30,30,70); //设置图像边距  
  11.    
  12. $graph->graph_theme = null; //设置主题为null,否则value->Show(); 无效  
  13.    
  14. $lineplot1=new LinePlot($data1); //创建设置两条曲线对象  
  15. $lineplot1->value->SetColor("red");  
  16. $lineplot1->value->Show();  
  17. $graph->Add($lineplot1);  //将曲线放置到图像上  
  18.    
  19. $graph->title->Set("CDN流量图");   //设置图像标题  
  20. $graph->xaxis->title->Set("月份"); //设置坐标轴名称  
  21. $graph->yaxis->title->Set("流 量(Gbits)");  
  22. $graph->title->SetMargin(10);  
  23. $graph->xaxis->title->SetMargin(10);  
  24. $graph->yaxis->title->SetMargin(10);  
  25.    
  26. $graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置字体  
  27. $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);  
  28. $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);   
  29. $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());  
  30.   
  31. $graph->Stroke();  //输出图像  
  32. ?>  


柱状图

[php]  view plain  copy
 print ?
  1. <?php  
  2. require_once ("jpgraph/jpgraph.php");  
  3. require_once ("jpgraph/jpgraph_bar.php");  
  4.   
  5. $data  = array(19,23,34,38,45,67,71,78,85,87,96,145);           
  6. $ydata = array("一","二","三","四","五","六","七","八","九","十","十一","十二");  
  7.   
  8. $graph = new Graph(500,300);  //创建新的Graph对象  
  9. $graph->SetScale("textlin");  //刻度样式  
  10. $graph->SetShadow();          //设置阴影  
  11. $graph->img->SetMargin(40,30,40,50); //设置边距  
  12.   
  13. $graph->graph_theme = null; //设置主题为null,否则value->Show(); 无效  
  14.   
  15. $barplot = new BarPlot($data);  //创建BarPlot对象  
  16. $barplot->SetFillColor('blue'); //设置颜色  
  17. $barplot->value->Show(); //设置显示数字  
  18. $graph->Add($barplot);  //将柱形图添加到图像中  
  19.    
  20. $graph->title->Set("CDN流量图");   
  21. $graph->xaxis->title->Set("月份"); //设置标题和X-Y轴标题  
  22. $graph->yaxis->title->Set("流 量(Mbits)");                                                                        
  23. $graph->title->SetColor("red");  
  24. $graph->title->SetMargin(10);  
  25. $graph->xaxis->title->SetMargin(5);  
  26. $graph->xaxis->SetTickLabels($ydata);  
  27.    
  28. $graph->title->SetFont(FF_SIMSUN,FS_BOLD);  //设置字体  
  29. $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);  
  30. $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);  
  31. $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD);  
  32.   
  33. $graph->Stroke();  
  34. ?>  


饼状图

[php]  view plain  copy
 print ?
  1. <?php  
  2. require_once ("jpgraph/jpgraph.php");  
  3. require_once ("jpgraph/jpgraph_pie.php");  
  4. require_once ("jpgraph/jpgraph_pie3d.php");  
  5.    
  6. $data = array(19,23,34,38,45,67,71,78,85,87,90,96);  
  7.    
  8. $graph = new PieGraph(550,500);  
  9. $graph->SetShadow();  
  10.    
  11. $graph->title->Set("CDN流量比例");  
  12. $graph->title->SetFont(FF_SIMSUN,FS_BOLD);  
  13.    
  14. $pieplot = new PiePlot3D($data);  //创建PiePlot3D对象  
  15. $pieplot->SetCenter(0.4, 0.5); //设置饼图中心的位置  
  16. $pieplot->SetLegends($gDateLocale->GetShortMonth()); //设置图例  
  17.   
  18. $graph->Add($pieplot);  
  19. $graph->Stroke();  
  20. ?>  

猜你喜欢

转载自blog.csdn.net/qq_37352702/article/details/78458318