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

解析PHP生成图表pChart的示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-20 17:29:39 浏览: 评论:0 

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.  
  3.  // Standard inclusions  
  4.  
  5.  include("pChart/pData.class"); 
  6.  
  7.  include("pChart/pChart.class"); 
  8.  
  9.  
  10.  
  11.  // Dataset definition  
  12.  
  13.  $DataSet = new pData; 
  14.  
  15.  //图表数据 
  16.  
  17.  $DataSet->AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); 
  18.  
  19.  $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); 
  20.  
  21.  $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); 
  22.  
  23.  $DataSet->AddAllSeries(); 
  24.  
  25.  $DataSet->SetAbsciseLabelSerie(); 
  26.  
  27.  //数据图例 
  28.  
  29.  $DataSet->SetSerieName("Microsoft","Serie1"); 
  30.  
  31.  $DataSet->SetSerieName("IBM","Serie2"); 
  32.  
  33.  $DataSet->SetSerieName("Google","Serie3"); 
  34.  
  35.  
  36.  
  37.  // Initialise the graph 
  38.  
  39.  $Test = new pChart(700,230); 
  40.  
  41.  //设置图表尺寸、样式 
  42.  
  43.  $Test->setFontProperties("Fonts/tahoma.ttf",8); 
  44.  
  45.  $Test->setGraphArea(50,30,680,200); 
  46.  
  47.  $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); 
  48.  
  49.  $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); 
  50.  
  51.  $Test->drawGraphArea(255,255,255,TRUE); 
  52.  
  53.  $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); 
  54.  
  55.  $Test->drawGrid(4,TRUE,230,230,230,50); 
  56.  
  57.  
  58.  
  59.  // Draw the 0 line 
  60.  
  61.  $Test->setFontProperties("Fonts/MankSans.ttf",6); 
  62.  
  63.  $Test->drawTreshold(0,143,55,72,TRUE,TRUE); 
  64.  
  65.  
  66.  
  67.  // Draw the bar graph 
  68.  
  69.  //柱状图要使用drawBarGraph() 
  70.  
  71.  $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80); 
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  // Finish the graph 
  78.  
  79.  //制作图例、标题、字体等属性 
  80.  
  81.  $Test->setFontProperties("Fonts/MankSans.ttf",10); 
  82.  
  83.  $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); 
  84.  
  85.  $Test->setFontProperties("Fonts/MankSans.ttf",10); 
  86.  
  87.  $Test->drawTitle(50,22,"Example",50,50,50,585); 
  88.  
  89.  //生成图表 
  90.  
  91.  $imageFile = "example12.png"
  92.  
  93.  $Test->Render($imageFile); 
  94.  
  95.  echo '<img src="'.$imageFile.'">'
  96.  
  97. ?> 

这个是雷达效果的:

解析PHP生成图表pChart的示例

代码:

  1. <?php 
  2.  
  3.  // Standard inclusions  
  4.  
  5.  include("pChart/pData.class"); 
  6.  
  7.  include("pChart/pChart.class"); 
  8.  
  9.  
  10.  
  11.  // Dataset definition  
  12.  
  13.  $DataSet = new pData; 
  14.  
  15.  $DataSet->AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label"); 
  16.  
  17.  $DataSet->AddPoint(array(6,4,7,4,5),"Serie1"); 
  18.  
  19.  $DataSet->AddPoint(array(2,3,5,2,4),"Serie2"); 
  20.  
  21.  $DataSet->AddSerie("Serie1"); 
  22.  
  23.  $DataSet->AddSerie("Serie2"); 
  24.  
  25.  $DataSet->SetAbsciseLabelSerie("Label"); 
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  $DataSet->SetSerieName("Reference","Serie1"); 
  32.  
  33.  $DataSet->SetSerieName("Tested computer","Serie2"); 
  34.  
  35.  
  36.  
  37.  // Initialise the graph 
  38.  
  39.  $Test = new pChart(400,400); 
  40.  
  41.  $Test->setFontProperties("Fonts/tahoma.ttf",8); 
  42.  
  43.  $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240); 
  44.  
  45.  $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230); 
  46.  
  47.  $Test->setGraphArea(30,30,370,370); 
  48.  
  49.  $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255); 
  50.  
  51.  $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220); 
  52.  
  53.  
  54.  
  55.  // Draw the radar graph 
  56.  
  57.  //要使用drawRadarAxis()生成雷达效果 
  58.  
  59.  $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230); 
  60.  
  61.  $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20); 
  62.  
  63.  
  64.  
  65.  // Finish the graph 
  66.  
  67.  $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255); 
  68.  
  69.  $Test->setFontProperties("Fonts/tahoma.ttf",10); 
  70.  
  71.  $Test->drawTitle(0,22,"Example",50,50,50,400); 
  72.  
  73.    
  74.  
  75.  $imageFile = "example8.png"
  76.  
  77.  $Test->Render($imageFile); 
  78.  
  79.  echo '<img src="'.$imageFile.'">'
  80.  
  81. ?> 

再看几个其他的效果

1,饼图:

解析PHP生成图表pChart的示例

2, 双座标曲线图:

解析PHP生成图表pChart的示例

3, 层叠柱状图:

解析PHP生成图表pChart的示例

4, 多图表:

解析PHP生成图表pChart的示例

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

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

Tags: PHP生成图表 pChart

分享到:

相关文章