本文實例講述了PHP圖形操作之Jpgraph學習筆記。分享給大家供大家參考,具體如下:
一、Jpgraph安裝配置
下載Jpgraph安裝包
解壓後放置磁盤中,(最好是放在和網頁一起)
修改php.ini文件:
1、內存 memory_limit=X,至少為32M
2、執行時間 max_execution_time=X,對於復雜的圖片加載時需要較多的時間,根據圖片的復雜度做相應的修改
3、緩存 output_buffering 注釋掉緩存,便於調試
二、使用Jpgraph創建圖形的基本步驟(必要的)
1、包含所需要的類庫文件復制代碼 代碼如下:require_once();
2、初始化數據復制代碼 代碼如下:$data=array();
可以是php程序中的固定數據,即靜態數據,直接得到
可以是存儲在文本文件中的數據
可以是存儲在數據庫中的數據
可以是通過URL參數傳遞的數據( GET 或 POST方式)
3、 創建Graph類實例復制代碼 代碼如下:$graph=new Graph();
可以在此設置圖形的尺寸
4、設置標題、x軸標題、y軸標題的內容,及其字體、顏色、位置等
5、創建對應的圖實例
可以是折線圖、柱形圖、餅狀圖,3d等
6、將數據添加到圖形上復制代碼 代碼如下:$graph->Add();
7、顯示圖片復制代碼 代碼如下:$graph->Stroke();
至此一個簡單的圖形就完成了
注意:
中文字體亂碼
Gpgraph默認顯示漢字時是把漢字編碼認為gb2312,轉化為utf-8以後再顯示,如果文件的編碼方式是gb2312,只需把SetFont()方法的第一個參數設置為FF_SIMSUN即可
如果是utf-8編碼的,需要先把漢字編碼轉化為gb2312,這樣漢字才能正常顯示
轉換編碼方式可以使用 iconv("UTF-8","gb2312",$x);
一些常用的方法:
$graph->title->Set('設置圖表的標題'); $graph->tabtitle->Set('設置圖片頭部文字'); $graph->xaxis->title->Set("設置X軸的標題"); $graph->yaxis->title->Set("設置Y軸的標題"); $graph->SetScale('textlin');//設置刻度值類型 $graph->img->SetMargin(50,40,40,55);//邊框間距(左右上下) $graph->title->SetFont(FF_SIMSUN,FS_BOLD,12);//標題字體 $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,10); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,10); $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD,12);//坐標柱上的字體 $graph->yaxis->SetFont(FF_SIMSUN,FS_BOLD,12); $graph->title->SetColor('red'); ///標題顏色 $graph->xaxis->title->SetColor('red'); $graph->yaxis->title->SetColor('red'); $graph->xaxis->title->SetMargin(20);//距離坐標軸的距離 $graph->yaxis->title->SetMargin(20);//距離Y軸的距離 $linepot->SetColor('red');//折線的顏色(折線圖) $linepot->SetWeight(2);//折線的寬度 $linepot->value->SetFormat('%0.1f'); //值的格式化 $linepot->value->show(true);//顯示值 $graph->SetBackGroundImage ( );設置背景 $graph->SetMarginColor('lightblue');//設置圖形顏色 $graph->SetShadow();// $graph->Set3DPerspecttive(); //設置3d效果圖 /*傾斜3D效果 1、' SKEW3D_UP ' 2、' SKEW3D_DOWN' 3、' SKEW3D_LEFT' 4、' SKEW3D_RIGHT'*/ $p1->SetTheme('water');//設置樣式 $p1->SetCenter(0.5,0.55);//設置圖形位置 $graph->legend->Pos(0.1,0.9);//設置注釋文字的位置 $graph->legend->SetFont(FF_SIMSUN,FS_BOLD,12);//設置注釋文字的字體
希望本文所述對大家PHP程序設計有所幫助。