pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

基于PHP的超炫酷HTML5交互式圖表

最近,我需要從一組PHP數(shù)據(jù)組快速創(chuàng)建圖表。要求圖表必須是交互式的,用戶友好的,可下載的。評(píng)估了一些PHP圖表的解決方案,包括phpChart、pChart和Highcharts之后,我決定采用phpChart作為
  用PHP實(shí)現(xiàn)專業(yè)級(jí)的基于Web的圖表,而無(wú)需深入的HTML5和JavaScript知識(shí)。

  介紹
  最近,我需要從一組PHP數(shù)據(jù)組快速創(chuàng)建圖表。要求圖表必須是交互式的,用戶友好的,也可下載的。在評(píng)估了一些PHP圖表的解決方案,包括phpChart、pChart和Highcharts之后,我決定采用phpChart作為我的首選工具。

  背景
  作為一個(gè)主要的后端程序員,我既沒(méi)有很多時(shí)間去慢慢研究使用JavaScript(客戶想要在24小時(shí)內(nèi)就能在網(wǎng)上看到圖表),也不具備先進(jìn)的前端編碼知識(shí)。從根本上說(shuō),我希望幾乎沒(méi)有任何前端編程經(jīng)驗(yàn)的PHP開(kāi)發(fā)人員也能夠快速開(kāi)發(fā)出精美的圖表。

  我試過(guò)pChart,一個(gè)流行的PHP圖表庫(kù)。生成的圖表看起來(lái)挺不錯(cuò),雖然是可下載的,但圖表都是靜態(tài)圖像。Highcharts似乎是最好的選擇。圖表看上去令人驚艷,又是動(dòng)畫(huà)的,并且有很多自定義選項(xiàng),但同時(shí),它也是非常復(fù)雜的,而且需要大量的JavaScript知識(shí)。 Highcharts既不是專為PHP設(shè)計(jì)的,用于商務(wù)也不是免費(fèi)的。

  phpChart的基本要素
  我最喜歡phpChart的地方就是它能讓人從簡(jiǎn)單和最少量的代碼入手。

  phpChart精簡(jiǎn)版可以從這里下載http://phpchart.org/downloads/。下載文件并解壓到網(wǎng)站根目錄。

  設(shè)置conf.php

  我們要做的第一件事是設(shè)置變量SCRIPTPATH到conf.php文件的PhpChart類庫(kù)。該變量代表了在你的Web服務(wù)器上的phpChart庫(kù)的相對(duì)或絕對(duì)URL。
  1. define('SCRIPTPATH','/phpChart/');
復(fù)制代碼

  創(chuàng)建最簡(jiǎn)單的圖表
  包含PHP頭文件conf.php:
  1. require_once("../conf.php");
復(fù)制代碼

  調(diào)用構(gòu)造函數(shù)C_PhpChartX,最后調(diào)用draw()函數(shù)。
  1. $pc=new C_PhpChartX(array(array(123, 34, 51, 22, 3)), ‘simplest_graph’);
  2. $pc->draw();
復(fù)制代碼

  這就是開(kāi)始你需要的代碼。下面是經(jīng)過(guò)渲染的輸出。

1.png

  這就是我所謂的最少量的編碼。當(dāng)你有一個(gè)團(tuán)隊(duì)的程序員來(lái)工作的時(shí)候,艱辛地去學(xué)習(xí)基礎(chǔ)就沒(méi)有意義了。任何程序員盡快想要做的一件事就是從一組新的庫(kù)或工具埋頭研究復(fù)雜的文檔。

  順便說(shuō)一句,構(gòu)造函數(shù)中的第二個(gè)參數(shù)的命名對(duì)你的圖表而言應(yīng)該是唯一的。我鍵入的是“simplest_graph”,也可以是任何非空格字符串。它必須是一個(gè)唯一的值,這樣你才可以在一個(gè)頁(yè)面中擁有多個(gè)圖表。

  添加標(biāo)題
  你應(yīng)該為你的圖表添加標(biāo)題,以便用戶知道他們?cè)诳词裁础?/FONT>
  1. $pc->set_title(array('text'=>’My Simplest Graph'));
復(fù)制代碼

  添加動(dòng)畫(huà)
  pChart做不到的其中一件事就是動(dòng)畫(huà)。在phpChart中,動(dòng)畫(huà)支持通過(guò)簡(jiǎn)單地調(diào)用set_animate和傳遞true值即可使用。
  1. $pc->set_animate(true);
復(fù)制代碼

  就是這樣。此時(shí)你的圖表應(yīng)該已經(jīng)具備了標(biāo)題和動(dòng)畫(huà)。完整的代碼如下:
  1. $pc = new C_PhpChartX(array(array(123, 34, 51, 22, 3)),'simplest_graph');
  2. $pc->set_animate(true);
  3. $pc->set_title(array('text'=>'My Simplest Graph'));
  4. $pc->draw();
復(fù)制代碼

  代碼實(shí)質(zhì)
  如果你在瀏覽器中查看來(lái)源,你會(huì)發(fā)現(xiàn),phpChart自動(dòng)包含了許多的JavaScript以及CSS文件,包括jquery.js、jquery-ui,和jqplot.js、jquery-ui.css等。雖然圖表在瀏覽器中通過(guò)客戶端的JavaScript渲染,但在前端的代碼完全是PHP。

  之所以受人歡迎是因?yàn)檫@樣一來(lái)對(duì)于我——一個(gè)PHP開(kāi)發(fā)人員而言就不再也需要擔(dān)心JavaScript了,因?yàn)閜hpChart會(huì)為我自動(dòng)處理。下面是在查看源代碼時(shí)生成的全部JavaScript代碼——是我前面四行PHP代碼的結(jié)果。
  1. <script language="JavaScript" type="text/javascript">
  2.      var _simplest_graph_plot_properties;
  3.     $(document).ready(function(){
  4.     setTimeout( function() {
  5.     _simplest_graph_plot_properties = {
  6.     "title":{
  7.     "text":"My Simplest Graph","show":1
  8.     },"animate":true,"animateReplot":true
  9.     }

  10.     $.jqplot.config.enablePlugins = true;
  11.     $.jqplot.config.defaultHeight = 300;
  12.     $.jqplot.config.defaultWidth = 400;
  13.     _simplest_graph= $.jqplot("simplest_graph",
  14.            [[123, 34, 51, 22, 3]], _simplest_graph_plot_properties);

  15.     }, 200 );
  16.     });
  17. </script>
復(fù)制代碼

  正如你可能也會(huì)注意到的,“simplest_graph”被用作JavaScript變量的一部分,如 _simplest_graph_plot_properties表示jqplot對(duì)象。這就是前面我所說(shuō)的命名必須唯一的原因。

  此外,該P(yáng)HP數(shù)據(jù)組被自動(dòng)轉(zhuǎn)換為JavaScript數(shù)組,所以以下PHP數(shù)組:
  1. array(array(123, 34, 51, 22, 3))
復(fù)制代碼

  成為JavaScript數(shù)組:
  1. [[123,34,51,22,3]]
復(fù)制代碼

  改變渲染器類型
  PhpChart支持實(shí)現(xiàn)柱形圖、折線圖和堆棧圖;帶狀線圖;塊圖;氣泡圖;蠟燭圖;gecko圖;meter圖;以及其他幾種類型的圖表。渲染器支持:
   BarRenderer
   BezierCurveRenderer
   BlockRenderer
   BubbleRenderer
   CanvasAxisLabelRenderer
   CanvasAxisTickRenderer
   CategoryAxisRenderer
   DateAxisRenderer
   DonutRenderer
   EnhancedLegendRenderer
   FunnelRenderer
   LogAxisRenderer
   MekkoAxisRenderer
   MekkoRenderer
   MeterGaugeRenderer
   OHLCRenderer
   PyramidAxisRenderer
   PieRenderer

  如果你不指定類型的話,默認(rèn)圖表類型是折線圖。要更改圖表類型,需要調(diào)用set_series_default函數(shù)。例如,將上面的例子更改為餅圖
  1. $pc->set_series_default(array('renderer'=>'plugin::PieRenderer'));
復(fù)制代碼

2.png

  請(qǐng)注意,我用的是phpChart企業(yè)版。 phpChart精簡(jiǎn)版只支持折線圖。

  數(shù)組和命名約定
  這里還有一些值得注意的地方。首先,phpChart函數(shù)中使用的幾乎所有參數(shù)是一個(gè)數(shù)組,不是全部,但幾乎所有的都是。只需記住這一點(diǎn),就能避免調(diào)試時(shí)的大量頭痛問(wèn)題(后面我將簡(jiǎn)要地覆蓋調(diào)試功能)。其次,渲染器在phpChart中被稱為“插件”,故而你必須像這樣傳遞“plugin :: PieRenderer”,中間雙冒號(hào)。對(duì)于自定義JavaScript中,用“js::yourJavascriptFunctioName”。

  高級(jí)phpChart:自定義JavaScript
  到目前為止,所有我展示的都是PHP。在大多數(shù)情況下,對(duì)于簡(jiǎn)單的PHP函數(shù)調(diào)用,phpChart完全能做得很好。為了充分利用phpChart,你或許會(huì)想要使用自定義JavaScript。例如,你可以用phpChart從JavaScript函數(shù)和外部源加載數(shù)據(jù)。

  下面的sineRenderer是一個(gè)自定義JavaScript函數(shù),用于定義從一組隨機(jī)數(shù)顯示正弦值。然后傳遞給set_data_renderer函數(shù)。

  PHP:
  1. $data1 = array();
  2. $pc = new C_PhpChartX(array($data1),'basic_chart_4');
  3. $pc->set_title(array('text'=>'Basic Chart with Custom JS'));
  4. $pc->set_data_renderer("js::sineRenderer");
  5. $pc->add_plugins(array('pointLabels'));
  6. $pc->set_animate(true);
  7. $pc->draw();
復(fù)制代碼

  JavaScript:
  1. sineRenderer = function() {
  2.     var data = [[]];
  3.     for (var i=0; i<13; i+=0.5) {
  4.       data[0].push([i, Math.sin(i)]);
  5.     }
  6.     return data;
  7.   };
復(fù)制代碼

  想要知道set_data_renderer函數(shù)的更多內(nèi)容可點(diǎn)擊這里:http://phpchart.org/phpChart/doc ... data_renderer@.html



  導(dǎo)出圖表到圖片
  剛開(kāi)始的時(shí)候,對(duì)此我很困擾,因?yàn)槲也恢廊绾螌?dǎo)出圖表。事實(shí)證明,phpChart圖表可以導(dǎo)出為可下載的圖片,但這個(gè)過(guò)程并沒(méi)有很好的記錄下來(lái)。我發(fā)現(xiàn)添加以下代碼到所有頁(yè)面的底部,就可以扭轉(zhuǎn)乾坤:
  1. <script type="text/javascript"
  2.   src="http://www.codeproject.com/phpChart/js/showjs.js"></script>
復(fù)制代碼

  下載showjs.js:http://phpchart.org/phpChart/js/showjs.js

  調(diào)試phpChart
  最后,在結(jié)束之前,我要提一提phpChart的一個(gè)非常寶貴的特點(diǎn)。那就是它的內(nèi)置調(diào)試功能。在其網(wǎng)站上,所有的在線例子(http://phpchart.org/examples/)都有調(diào)試可以啟用生動(dòng)的演示和兩個(gè)清晰的可方便移植下面代碼的選項(xiàng)卡——分別是JavaScript和PHP。

  要啟用調(diào)試,只需添加以下代碼行到conf.php文件:
  1. define('DEBUG', true);
復(fù)制代碼

  最后的思考
  PhpChart的一個(gè)主要好處是,通過(guò)使用這個(gè)工具,PHP程序員可以實(shí)現(xiàn)專業(yè)級(jí)的基于Web的圖表——而無(wú)需深入了解HTML5和JavaScript知識(shí)。

  如果你像我一樣,也是前端編程的門外漢,但同樣需要生成交互式的Web圖表,那么你或許會(huì)喜歡phpChart。關(guān)于phpChart的HTML5圖表例子已經(jīng)完整地羅列到以下這個(gè)頁(yè)面中。運(yùn)氣好的話,你也許并不需要文檔——就可以直接理解代碼。

  譯文鏈接:http://www.codeceo.com/article/php-html5-phpchart.html
   英文原文:Creating Interactive HTML5 Graphs in PHP
   翻譯作者:碼農(nóng)網(wǎng) – 小峰

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

由于實(shí)際運(yùn)行環(huán)境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會(huì)達(dá)到,所以這部分不是開(kāi)發(fā)者能夠決定的,開(kāi)發(fā)者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個(gè)自定義的視頻播放器,需要用到HTML5提供的video標(biāo)簽、以及HTML5提供的對(duì)JavascriptAPI的擴(kuò)展。,HTML5中國(guó),中國(guó)最大的HTML5中文門戶。
隨著 Hybrid 應(yīng)用的豐富,HTML5 工程師們已經(jīng)不滿足于把桌面端體驗(yàn)簡(jiǎn)單移植到移動(dòng)端,他們覬覦移動(dòng)原生應(yīng)用人性化的操作體驗(yàn),特別是原生應(yīng)用與生俱來(lái)的豐富的手勢(shì)系統(tǒng)。HTML5 沒(méi)有提
你想要在自己網(wǎng)站上分享一個(gè)產(chǎn)品,或者是一個(gè)作品集,又或者僅僅只是一個(gè)靈感。在你發(fā)布到網(wǎng)上之前,你想讓它看起來(lái)有吸引力,專業(yè),或者至少得看起來(lái)像那么回事。那么你接下
H5廣告,包括H5廣告的設(shè)計(jì)流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個(gè)講義。同時(shí),也讓我意外的收到了非常好反饋和認(rèn)!這是對(duì)我的極大鼓勵(lì)!我的
本文主要內(nèi)容有:框架與組件、構(gòu)建生態(tài)、開(kāi)發(fā)技巧與調(diào)試、html、css與重構(gòu)、native/hybrid/桌面開(kāi)發(fā)、前端/H5優(yōu)化、全棧/全端開(kāi)發(fā)、研究實(shí)驗(yàn)、數(shù)據(jù)分析與監(jiān)控、其它軟技能、前端技術(shù)網(wǎng)
主站蜘蛛池模板: 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | 驾驶人在线_专业学车门户网站 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 心得体会网_心得体会格式范文模板 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 我爱古诗词_古诗词名句赏析学习平台 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 高压互感器,电流互感器,电压互感器-上海鄂互电气科技有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | loft装修,上海嘉定酒店式公寓装修公司—曼城装饰 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司| 土壤水分自动监测站-SM150便携式土壤水分仪-铭奥仪器 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 |