ThinkPHP3 2應用pChart擴充套件類

2021-09-12 15:21:47 字數 2517 閱讀 1537

pchart是乙個開源的圖表生成庫,主要涉及3個class:pdata.class.php、pdraw.class.php、pimage.class.php,可生成20多種簡單或複雜的圖表,支援png,jpg,gif通用格式。

thinkphp3.2匯入pchart很簡單,只需將pchart檔案複製到thinkphp的library就可以了。具體操作:將pchart解壓,解壓後的資料夾pchart整體複製到thinkphp/library/org/util/路徑下。

在thinkphp控制器加入一下三行import語句,程式就可以呼叫pchart類。注意:例項化時物件名前加「\"。

import("org.util.pchart.class.pdraw");

import("org.util.pchart.class.pimage");

import("org.util.pchart.class.pdata");

$pimage=new \pimage($width,$height,$pdata);

pdata.class.php、pdraw.class.php、pimage.class.php在pchart\class\路徑下。

下面寫乙個例子:生成一張走勢圖

定義常量: 

define("width",512);

define("imgchart",common_path."img/basic.png");

public function index()
private function pimg()'")->order('pdate')->field('pdate,price')->select();

$retarr=array();

$meanarr=array();

$sum=0;

foreach($rarr as $r)

}//計算移動平均值

$priceslist=array_column($retarr,'price');

$datearr=array_column($retarr,'pdate');

$xdate=array();

$firstxvalue=substr($datearr[0],2,5);

$secondxvalue=nextmonth($firstxvalue);

$i=0;

foreach($datearr as $v)

else

} else

} $mydata=new \pdata();

$mydata->addpoints($priceslist,'price');

$mydata->addpoints($xdate,'pdate');

$mydata->setaxisname('price',"price of metal");

$mydata->setabscissa("pdate");

$mydata->setpalette("price",array("r"=>100,"g"=>138,"b"=>179));

$mydata->setaxiscolor(0,array("r"=>100,"g"=>90,"b"=>79));

$mydata->setserieweight("price",0.5);

$mypicture=new \pimage(width,232,$mydata);//高度232

$mypicture->setgrapharea(48,52,width-25,192);

$mypicture->setfontproperties(array("fontname"=>common_path."img/txzhj-w3.ttf","fontsize"=>12));

$scaleformat=array(

"labelingmethod"=>labeling_different,

"skippedtickalpha"=>0,

"gridr"=>180,

"gridg"=>180,

"gridb"=>180,

"gridticks"=>0,

"skippedaxisalpha"=>0,

"drawxlines"=>false,

);$mypicture->drawscale($scaleformat);

$mypicture->setfontproperties(array("fontname"=>common_path."img","fontsize"=>14));

$mypicture->drawsplinechart(array(

"voidticks"=>0,

"displaycolor"=>display_manual,

));$mypicture->render(imgchart);

}

執行結果: 

ThinkPHP3 2 驗證隨記

自動完成 靜態方式 在模型類裡面通過 auto屬性定義處理規則。動態方式 使用模型類的auto方法動態建立自動處理規則。自動驗證 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。定義格式為 array array 驗證欄位...

THINKPHP3 2命名空間

thinkphp3.2命名空間 3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入。例如,...

ThinkPHP3 2 搭載環境

thinkphp是乙個快速 簡單的基於mvc和物件導向的輕量級php開發框架 預設情況下當你執行index.php時只有home模組,如果你需要建立其他模組時需要在入口檔案 index.php 中定義 define bind module admin 繫結入口到admin模組訪問 bind modu...