標籤:auto text turn ber option each 圖例 padding 網格
<?php/** * Echarts 報表類 * @author 齊福 * 2017年3月3日 上午11:44:30 * api 解釋需要結合 2.0 和 3.0 因為2.0有的東西 3.0大部分不會出現例如 title 屬性 3.0就沒有說明 * 2.0 http://echarts.baidu.com/echarts2/doc/doc.html * 3.0 http://echarts.baidu.com/api.html#echarts * @version 1.0 */class Echarts{/** * 標題 * @var array("text"=>"報表"); */var $title = array("text"=>"報表");//報表標題/** * 顯示提示框 * @var array("trigger"=>"axis"); */var $tooltip = array("trigger"=>"axis");/** * 報表圖例 一個圖例對應個 串聯 (series) */var $legend = array();/** * grid組件 可以有多個 並且有各種控制寬高間距的屬性 */var $grid = array();var $xAxis = array();/** * y軸 設定成type value則 隨著 series data 變化而變化 */var $yAxis = array("type"=>"value");var $series = array();var $toolbox = array(); function get_option(){ $vars = get_class_vars("Echarts"); $option = array(); foreach ($vars as $k=>$v){ $option[$k] = $this->$k; } return $option; } }class Title{/** * 顯示策略 */var $show = true;/** * 標題顯示文字 */var $text = ‘‘;/** * 副標題 */var $subtext = ‘‘;function set_title($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}class Legend{var $data = array();function set_legend($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}class XAxis{var $gridIndex = 0;/*座標軸類型‘value‘ 數值軸,適用於連續資料。‘category‘ 類目軸,適用於離散的類目資料,為該類型時必須通過 data 設定類目資料。‘time‘ 時間軸,適用於連續的時序資料,與數值軸相比時間軸帶有時間的格式化,在刻度計算上也有所不同,例如會根據跨度的範圍來決定使用月,星期,日還是小時範圍的刻度。‘log‘ 對數軸。適用於對數資料。*/var $type = ‘category‘;var $data = array();//x 軸的位置。 預設 grid 中的第一個 x 軸在 grid 的下方(‘bottom‘),第二個 x 軸視第一個 x 軸的位置放在另一側。var $position = ‘bottom‘;var $boundaryGap = false;function set_xAxis($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}class YAxis{var $gridIndex = 0;/* 座標軸類型 ‘value‘ 數值軸,適用於連續資料。 ‘category‘ 類目軸,適用於離散的類目資料,為該類型時必須通過 data 設定類目資料。 ‘time‘ 時間軸,適用於連續的時序資料,與數值軸相比時間軸帶有時間的格式化,在刻度計算上也有所不同,例如會根據跨度的範圍來決定使用月,星期,日還是小時範圍的刻度。 ‘log‘ 對數軸。適用於對數資料。 */var $type = ‘category‘;var $data = array();//y 軸的位置。預設 grid 中的第一個 y 軸在 grid 的左側(‘left‘),第二個 y 軸視第一個 y 軸的位置放在另一側。 可選 left rightvar $position = ‘left‘;var $boundaryGap = false;function set_yAxis($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}/** * grid組件 可以有多個 並且有各種控制寬高間距的屬性 */class Grid{/** * 是否顯示直角座標系網格。 */var $show=false,$left=60,$top=60,$right=‘10%‘,$bottom=60,$width=‘auto‘,$height=‘auto‘,/** * grid 地區是否包含座標軸的刻度標籤,在無法確定座標軸標籤的寬度,容器又比較小無法預留較多空間的時候,可以設為 true 防止標籤溢出容器。 */$containLabel=FALSE,/** *網格背景色,預設透明。 比如 ‘rgb(128, 128, 128)‘ 比如 ‘#ccc‘ 注意:此配置項生效的前提 設定了 show: true。 */$backgroundColor=‘transparent‘;function set_grid($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}class Series{var $name = ‘‘;var $type = ‘line‘;var $stack = ‘‘;var $areaStyle =‘‘;var $data = array();function set_series($v) {foreach ($v as $k=>$v){$this->$k = $v;}}}class Toolbox{var $feature = array();/** * 水平安放位置 * 可選為:‘center‘ | ‘left‘ | ‘right‘ | {number}(x座標,單位px) */var $x = "right";/** * 垂直安放位置 * 可選為:‘top‘ | ‘bottom‘ | ‘center‘ | {number}(y座標,單位px) */var $y = "top";/** * 工具箱內邊距 * 配合 x y 使用 */var $padding = array(5,100);function __construct(){$this->feature = new Feature();}}class Feature{/** * 輔助線標誌 */var $mark =array("show"=>false);/** * 框選地區縮放 */var $dataZoom = array("show"=>false);/** * 資料檢視 */var $dataView = array("show"=>false);/** * 動態類型切換 * type [‘line‘, ‘bar‘, ‘stack‘, ‘tiled‘, ‘force‘, ‘chord‘, ‘pie‘, ‘funnel‘] * line 折線圖 * bar 柱狀圖 * stack 堆積圖 * tiled 平鋪轉換 * force 力導向布局圖 * chord 弦圖 * pie 餅圖 * funnel 漏斗圖 */var $magicType = array("show"=>false);/** * 還原 */var $restore = array("show"=>false);/** * 儲存圖片 */var $saveAsImage = array("show"=>false);}//注 報表必須具備 三個屬性 xAxis yAxis 和 series/* $c = new Echarts();//$v = array("type"=>‘1‘,‘data‘=>array(‘周一‘,‘周二‘));//$x =new XAxis($v);//$c->set_xAxis($x);//$c->add_xAxis($v); $xa = new XAxis(); $xa->position = ‘top‘; $xa->data = array("2010-1-2","2010-1-3"); $c->add_xAxis($xa);//$xax = $c->xAxis;$grid = new Grid();$c->set_grid($grid);$ya = new YAxis();$ya->data = array("123","223");$ya->type = "value";$c->add_yAxis($ya);$ser = new Series();$ser->type = ‘line‘;$ser->data = array("123","223");$c->set_series($ser);echo print_r(json_encode($c->get_option()),true); */?>
例如 title 屬性 可以通過 title 類的 set_title 擴充屬性
title加連結
$title = new Title();
$title->set_title(array("link"=>"url"));
Echarts php報表類