PHP使用JpGraph建立影象

2020-07-16 10:05:32
在介紹完 JpGraph 的安裝設定之後,就可以使用 JpGraph 來建立影象了。為了更好的使用 JpGraph,首先我們來了解一下使用 JpGraph 編寫生成影象的程式碼時通常需要哪些步驟。

1) 包含所需要的類庫檔案

首先我們需要使用 require_once() 或者 include_once() 等函數將我們需要使用的類庫檔案引入到當前的程式碼中。例如:

include_once("./src/jpgraph.php");             // JpGraph 類的主類
include_once("./src/jpgraph_bar.php");      // JpGraph 類的柱狀圖擴充套件
include_once("./src/jpgraph_line.php");     // JpGraph 類的折線圖擴充套件
include_once("./src/jpgraph_pie.php");      // JpGraph 類的餅狀圖擴充套件
include_once("./src/jpgraph_pie3d.php");  // JpGraph 類的3D餅狀圖擴充套件

2) 初始化資料

引入需要的檔案後,接下來就可以初始化圖表中需要的資料了,如下所示:

$data = array();

這些資料可以是 PHP 程式中固定的資料;也可以是儲存在資料庫或者文字檔案中的資料;還可以是通過 URL 引數傳遞的資料。

3) 建立 Graph 類範例

有了所需的資料,接下來就需要來建立 Graph 類的範例了,我們可以通過建立範例的過程來設定生成影象的尺寸,如下所示:

$graph = new Graph(400, 500);

4) 設定標題及其字型、顏色、位置

JpGraph 中提供了很多可以設定的引數,以便我們可以製作成多種多樣的影象,例如下面這些:

$graph->title->Set('C語言中文網');                                             // 圖表標題文字
$graph->title->SetColor('white');                                              // 圖表標題顏色
$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);                // 圖表標題字型

$graph->xaxis->title->Set('C語言中文網');                                // X 軸標題文字
$graph->xaxis->title->SetColor('black');                                  // X 軸標題顏色
$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);    // X 軸標題字型
$graph->xaxis->SetTickLabels($xdata);                                   // 設定 X 軸標誌資料(每個資料的標誌)
$graph->xaxis->SetColor('black','white');                                // X 軸顏色
$graph->xaxis->SetFont(FF_VERDANA, FS_NORMAL,8);        // X 軸字型

$graph->yaxis->title->Set('C語言中文網');                               // Y 軸標題文字
$graph->yaxis->title->SetColor('black');                                 // Y 軸標題顏色
$graph->yaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);   // Y 軸標題字型
$graph->yaxis->SetColor('black','white');                                // Y 軸顏色
$graph->yaxis->SetFont(FF_VERDANA, FS_NORMAL,8);        // Y 軸字型

5) 建立對應的影象範例

設定好圖示的各個引數後,就可以建立指定圖示的範例了,可以是折線圖、柱形圖、餅狀圖,3D 餅狀圖等,如下所示:

$bar = new BarPlot($data);                  //建立一個柱形圖物件
$line = new LinePlot($data);                //建立折線圖物件
$pieplot = new PiePlot3D($data);        //建立3D餅狀圖物件

6) 將資料新增到影象上

$graph->Add();

7) 顯示影象

$graph->Stroke();

至此一個簡單的圖形就完成了

注意:JpGraph 會預設將漢字編碼認定為 GB2312,並將之轉化為 UTF-8 格式後再顯示。所以如果檔案的編碼格式為 GB2312,只需將 SetFont() 方法的第一個引數設定為 FF_SIMSUN 即可,如果是 UTF-8 編碼,則需要把漢字編碼轉化為 GB2312,這樣漢字才能正常顯示,轉換編碼方式可以使用 iconv("UTF-8","GB2312",$x);

【範例】下面通過一個簡單的範例來演示一下如何使用 JpGraph 類庫來生成圖表。
<?php
    //引入jpgraph相關類檔案
    include("./src/jpgraph.php");
    include("./src/jpgraph_bar.php");
    //設定資料,當然也可以從資料庫查詢得到
    $datay=array(190,188,223,289,305,488,489,408,299,566,187,105);
    $graph=new Graph(600,300,"auto");//建立畫布物件大小
    $graph->setScale("textlin"); //設定刻度樣式,X軸和Y軸
    $graph->yaxis->scale->SetGrace(20);
    $graph->SetShadow(); //建立畫布陰影
    $graph->img->setMargin(40,30,30,40);//設定生成的圖形與畫布邊緣的距離,順序為左右上下
    $bplot=new BarPlot($datay);//建立矩形物件
    $bplot->SetFillcolor('orange');//設定柱形圖顏色
    $graph->Add($bplot);//將柱形圖新增到影象中
    $bplot->value->Show();//設定顯示數位
    $bplot->value->SetFormat('%d');//在柱形圖中顯示格式化的圖書銷量
    $graph->SetMarginColor("lightblue");//設定畫布背景色為淡藍色
    $graph->title->Set(iconv('utf-8', 'gb2312', 'C語言中文網'));//建立標題
    //設定X坐標軸文字
    $a=array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
    $graph->xaxis->SetTickLabels($a);//設定X軸
    $graph->title->SetFont(FF_SIMSUN);//設定標題的字型為"黑体",SetFont(x,x,x)第一個引數為字型,第二個引數為字     型,第三個引數為字號。
    $graph->xaxis->SetFont(FF_SIMSUN);//設定X軸的字型
    $graph->Stroke();//輸出影象
?>
執行結果如下圖所示:

使用 JpGraph 生成圖表
圖:使用 JpGraph 生成圖表