PHP柱狀圖、餅狀圖和線性圖

來源:互聯網
上載者:User

首先我們要介紹一下我們在這篇文章中使用的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的不一而足,這個用起來相對簡單一點,大家儘管拿去用好了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.