1. 程式人生 > 程式設計 >PHP生成圖表pChart的示例解析

PHP生成圖表pChart的示例解析

pChart是一個開源的圖表生成庫,主要涉及3個Class:pChart.class,pData.class,pCache.class,可生成20多種簡單或複雜的圖表,支援PNG,JPG,GIF通用圖片格式。資料來源可以來自於Database,CSV,當然也可以手寫。使用該程式PHP需要開啟GD服務,先來看看pChart的工作流程:

PHP生成圖表pChart的示例解析

主要分為三步:

  1. * 讀取用於生成圖表資料(資料庫、檔案)
  2. * 設計圖表樣式(圓角、底色等)
  3. * 製作標籤、題目、圖例並生成圖表

下面看一個簡單的柱狀圖表:

PHP生成圖表pChart的示例解析

程式碼如下:

<?php
 // Standard inclusions  
 include("pChart/pData.class");
 include("pChart/pChart.class");

 // Dataset definition 
 $DataSet = new pData;
 //圖表資料
 $DataSet->AddPoint(array(1,4,-3,2,3,1,7,4),"Serie1");
 $DataSet->AddPoint(array(3,-4,-2,-1,6,3),"Serie2");
 $DataSet->AddPoint(array(4,2),"Serie3");
 $DataSet->AddAllSeries();
 $DataSet->SetAbsciseLabelSerie();
 //資料圖例
 $DataSet->SetSerieName("Microsoft","Serie1");
 $DataSet->SetSerieName("IBM","Serie2");
 $DataSet->SetSerieName("Google","Serie3");

 // Initialise the graph
 $Test = new pChart(700,230);
 //設定圖表尺寸、樣式
 $Test->setFontProperties("Fonts/tahoma.ttf",8);
 $Test->setGraphArea(50,30,680,200);
 $Test->drawFilledRoundedRectangle(7,693,223,5,240,240);
 $Test->drawRoundedRectangle(5,695,225,230,230);
 $Test->drawGraphArea(255,255,TRUE);
 $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,TRUE,TRUE);
 $Test->drawGrid(4,50);

 // Draw the 0 line
 $Test->setFontProperties("Fonts/MankSans.ttf",6);
 $Test->drawTreshold(0,143,55,72,TRUE);

 // Draw the bar graph
 //柱狀圖要使用drawBarGraph()
 $Test->drawBarGraph($DataSet->GetData(),80);


 // Finish the graph
 //製作圖例、標題、字型等屬性
 $Test->setFontProperties("Fonts/MankSans.ttf",10);
 $Test->drawLegend(596,255);
 $Test->setFontProperties("Fonts/MankSans.ttf",10);
 $Test->drawTitle(50,22,"Example",50,585);
 
 //生成圖表
 $imageFile = "example12.png";
 $Test->Render($imageFile);
 echo '<img src="'.$imageFile.'">';
?>

這個是雷達效果的:

PHP生成圖表pChart的示例解析

程式碼:

<?php
 // Standard inclusions  
 include("pChart/pData.class");
 include("pChart/pChart.class");

 // Dataset definition 
 $DataSet = new pData;
 $DataSet->AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label");
 $DataSet->AddPoint(array(6,5),"Serie1");
 $DataSet->AddPoint(array(2,"Serie2");
 $DataSet->AddSerie("Serie1");
 $DataSet->AddSerie("Serie2");
 $DataSet->SetAbsciseLabelSerie("Label");


 $DataSet->SetSerieName("Reference","Serie1");
 $DataSet->SetSerieName("Tested computer","Serie2");

 // Initialise the graph
 $Test = new pChart(400,400);
 $Test->setFontProperties("Fonts/tahoma.ttf",8);
 $Test->drawFilledRoundedRectangle(7,393,395,230);
 $Test->setGraphArea(30,370,370);
 $Test->drawFilledRoundedRectangle(30,255);
 $Test->drawRoundedRectangle(30,220,220);

 // Draw the radar graph
 //要使用drawRadarAxis()生成雷達效果
 $Test->drawRadarAxis($DataSet->GetData(),20,120,230);
 $Test->drawFilledRadar($DataSet->GetData(),20);

 // Finish the graph
 $Test->drawLegend(15,15,255);
 $Test->setFontProperties("Fonts/tahoma.ttf",10);
 $Test->drawTitle(0,400);
 
 $imageFile = "example8.png";
 $Test->Render($imageFile);
 echo '<img src="'.$imageFile.'">';
?>

再看幾個其他的效果

1,餅圖:

PHP生成圖表pChart的示例解析

2,雙座標曲線圖:

PHP生成圖表pChart的示例解析

3,層疊柱狀圖:

PHP生成圖表pChart的示例解析

4,多圖表:

PHP生成圖表pChart的示例解析

圖表的種類已經相當豐富了,具體圖表設定請參考http://pchart.sourceforge.net/documentation.php?topic=pChart

::原始碼下載:::http://xiazai.jb51.net/202007/yuanma/pChart_jb51.rar

到此這篇關於PHP生成圖表pChart的示例解析的文章就介紹到這了,更多相關PHP生成圖表pChart內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!