首先我們要介紹一下我們在這篇文章中使用的PHP類Libchart,這是個外國人(非中國國籍的地球人,被稱為外國人!)寫的免費類!使用起來非
常簡單。看出來了吧,我們是要用一個外國人寫的PHP建立柱狀圖,餅狀圖,和線性圖的類,來工作的。如果你要學習這個類的寫法,你也可以把這個類下載下來看看外國人的思路!
我們開始吧,首先下載這個類 點擊此處:下
載Libchart
,解壓縮!
第一個用例,我們來建立一個縱向的柱狀圖:
首先我們包含這個類檔案到我們的程式中,並且執行個體化這個類,程式如下:
requir_once('./Libchart/classes/libchart.php');
$chart = new VerticalBarChart(500, 250);//參數表示需要建立的映像的寬和高
$dataSet = new XYDataSet();//執行個體化一個XY軸資料對象
//為這個對象增加四組資料集合,Point對象的第一個參數表示X軸座標,第二個表示Y軸座標
$dataSet->addPoint(new Point("Jan 2005", 273));
$dataSet->addPoint(new Point("Feb 2005", 321));
$dataSet->addPoint(new Point("March 2005", 442));
$dataSet->addPoint(new Point("April 2005", 711));
//把這個資料集合傳遞給繪圖物件
$chart->setDataSet($dataSet);
//設定圖形的標題,並把它作為一個png檔案渲染
$chart->setTitle("Monthly usage for www.example.com");
$chart->render("generated/demo1.png");//這裡需要一個路徑和檔案名稱
就這麼簡單一個像一樣美麗的柱狀圖就出來了。
PHP柱狀圖
PHP建立一個餅狀圖的過程和上邊說的柱狀圖大同小異
,具體執行個體代碼如下:
$chart = new PieChart(500, 250);
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Mozilla Firefox (80)", 80));
$dataSet->addPoint(new Point("Konqueror (75)", 75));
$dataSet->addPoint(new Point("Other (50)", 50));
$chart->setDataSet($dataSet);
$chart->setTitle("User agents for www.example.com");
$chart->render("generated/demo2.png");
建立餅狀圖
就一點值得說一下就是Point的參數,第一個參數是佔用比例的名稱,第二個是資料,並不存在XY坐
標;圖如下:
餅狀圖
建立一個線性圖,
這個有點和上邊兩個不同,就是資料集合的不同。我們也看到了XYDataSet這個資料集合,
另外在這個類中還有一個資料集合XYSeriesDataSet(),這個其實是一個比XYDataSet更大的集合而已,他的元素就是
XYDataSet,看一下例子和這段建立PHP線性圖的程式,你一定就明白了:
include "../libchart/classes/libchart.php";
$chart = new LineChart(500, 250);
$serie1 = new XYDataSet();
$serie1->addPoint(new Point("06-01", 273));
$serie1->addPoint(new Point("06-02", 421));
$serie1->addPoint(new Point("06-03", 642));
$serie1->addPoint(new Point("06-04", 799));
$serie1->addPoint(new Point("06-05", 1009));
$serie1->addPoint(new Point("06-06", 1106));
$serie2 = new XYDataSet();
$serie2->addPoint(new Point("06-01", 280));
$serie2->addPoint(new Point("06-02", 300));
$serie2->addPoint(new Point("06-03", 212));
$serie2->addPoint(new Point("06-04", 542));
$serie2->addPoint(new Point("06-05", 600));
$serie2->addPoint(new Point("06-06", 850));
//這些和前面的兩個看起來沒有什麼區別,關鍵在下邊這一段,需要自己理解一下啦:
$dataSet = new XYSeriesDataSet();
$dataSet->addSerie("Product 1", $serie1);
$dataSet->addSerie("Product 2", $serie2);
$chart->setDataSet($dataSet);
$chart->setTitle("Sales for 2006");
$chart-> render("generated/demo3.png");
畫出這樣一個圖來:
線性圖
然後,把資料交給圖形執行個體,然後渲染圖形,和建立柱狀圖和線性圖是一樣的。其實國外還有好多建立柱狀圖和餅狀圖
的類程式,有的還
相當的NB,例如結合flash的,結合web css的不一而足,這個用起來相對簡單一點,大家儘管拿去用好了!