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

PHP生成图表pChart的示例解析

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-20 09:44:47 浏览: 评论:0 

这篇文章主要介绍了PHP生成图表pChart的示例解析,文中通过解析pChartd 工作流程和不同图表的代码展示,讲解的非常详细,对大家的学习或工作具有一定的参考价值,有需要的来和小编一起学习把吧。

pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:

PHP生成图表pChart的示例解析

主要分为三步:

* 读取用于生成图表数据(数据库、文件)

* 设计图表样式(圆角、底色等)

* 制作标签、题目、图例并生成图表

下面看一个简单的柱状图表:

PHP生成图表pChart的示例解析

代码如下:

  1. <?php 
  2.  // Standard inclusions  
  3.  include("pChart/pData.class"); 
  4.  include("pChart/pChart.class"); 
  5.  
  6.  // Dataset definition  
  7.  $DataSet = new pData; 
  8.  //图表数据 
  9.  $DataSet->AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); 
  10.  $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); 
  11.  $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); 
  12.  $DataSet->AddAllSeries(); 
  13.  $DataSet->SetAbsciseLabelSerie(); 
  14.  //数据图例 
  15.  $DataSet->SetSerieName("Microsoft","Serie1"); 
  16.  $DataSet->SetSerieName("IBM","Serie2"); 
  17.  $DataSet->SetSerieName("Google","Serie3"); 
  18.  
  19.  // Initialise the graph 
  20.  $Test = new pChart(700,230); 
  21.  //设置图表尺寸、样式 
  22.  $Test->setFontProperties("Fonts/tahoma.ttf",8); 
  23.  $Test->setGraphArea(50,30,680,200); 
  24.  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); 
  25.  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); 
  26.  $Test->drawGraphArea(255,255,255,TRUE); 
  27.  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); 
  28.  $Test->drawGrid(4,TRUE,230,230,230,50); 
  29.  
  30.  // Draw the 0 line 
  31.  $Test->setFontProperties("Fonts/MankSans.ttf",6); 
  32.  $Test->drawTreshold(0,143,55,72,TRUE,TRUE); 
  33.  
  34.  // Draw the bar graph 
  35.  //柱状图要使用drawBarGraph() 
  36.  $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80); 
  37.  
  38.  
  39.  // Finish the graph 
  40.  //制作图例、标题、字体等属性 
  41.  $Test->setFontProperties("Fonts/MankSans.ttf",10); 
  42.  $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); 
  43.  $Test->setFontProperties("Fonts/MankSans.ttf",10); 
  44.  $Test->drawTitle(50,22,"Example",50,50,50,585); 
  45.    
  46.  //生成图表 
  47.  $imageFile = "example12.png"
  48.  $Test->Render($imageFile); 
  49.  echo '<img src="'.$imageFile.'">'
  50. ?> 

这个是雷达效果的:

PHP生成图表pChart的示例解析

代码:

  1. <?php 
  2.  // Standard inclusions  
  3.  include("pChart/pData.class"); 
  4.  include("pChart/pChart.class"); 
  5.  
  6.  // Dataset definition  
  7.  $DataSet = new pData; 
  8.  $DataSet->AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label"); 
  9.  $DataSet->AddPoint(array(6,4,7,4,5),"Serie1"); 
  10.  $DataSet->AddPoint(array(2,3,5,2,4),"Serie2"); 
  11.  $DataSet->AddSerie("Serie1"); 
  12.  $DataSet->AddSerie("Serie2"); 
  13.  $DataSet->SetAbsciseLabelSerie("Label"); 
  14.  
  15.  
  16.  $DataSet->SetSerieName("Reference","Serie1"); 
  17.  $DataSet->SetSerieName("Tested computer","Serie2"); 
  18.  
  19.  // Initialise the graph 
  20.  $Test = new pChart(400,400); 
  21.  $Test->setFontProperties("Fonts/tahoma.ttf",8); 
  22.  $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240); 
  23.  $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230); 
  24.  $Test->setGraphArea(30,30,370,370); 
  25.  $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255); 
  26.  $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220); 
  27.  
  28.  // Draw the radar graph 
  29.  //要使用drawRadarAxis()生成雷达效果 
  30.  $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230); 
  31.  $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20); 
  32.  
  33.  // Finish the graph 
  34.  $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255); 
  35.  $Test->setFontProperties("Fonts/tahoma.ttf",10); 
  36.  $Test->drawTitle(0,22,"Example",50,50,50,400); 
  37.    
  38.  $imageFile = "example8.png"
  39.  $Test->Render($imageFile); 
  40.  echo '<img src="'.$imageFile.'">'
  41. ?> 

再看几个其他的效果

1,饼图:

PHP生成图表pChart的示例解析

2, 双座标曲线图:

PHP生成图表pChart的示例解析

3, 层叠柱状图:

PHP生成图表pChart的示例解析

4, 多图表:

PHP生成图表pChart的示例解析

图表的种类已经相当丰富了,具体图表设置请参考

http://pchart.sourceforge.net/documentation.php?topic=pChart

Tags: PHP生成图表 pChart

分享到: