목차
基于PHP的超炫酷HTML5交互式图表
백엔드 개발 PHP 튜토리얼 基于PHP的超炫酷HTML5交互式图表_PHP教程

基于PHP的超炫酷HTML5交互式图表_PHP教程

Jul 13, 2016 am 09:46 AM
html5 php

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

用PHP实现专业级的基于Web的图表,而无需深入的HTML5和JavaScript知识。

介绍

最近,我需要从一组PHP数据组快速创建图表。要求图表必须是交互式的,用户友好的,也可下载的。在评估了一些PHP图表的解决方案,包括phpChart、pChart和Highcharts之后,我决定采用phpChart作为我的首选工具。

背景

作为一个主要的后端程序员,我既没有很多时间去慢慢研究使用JavaScript客户想要在24小时内就能在网上看到图表),也不具备先进的前端编码知识。从根本上说,我希望几乎没有任何前端编程经验的PHP开发人员也能够快速开发出精美的图表。

我试过pChart,一个流行的PHP图表库。生成的图表看起来挺不错,虽然是可下载的,但图表都是静态图像。Highcharts似乎是最好的选 择。图表看上去令人惊艳,又是动画的,并且有很多自定义选项,但同时,它也是非常复杂的,而且需要大量的JavaScript知识。 Highcharts既不是专为PHP设计的,用于商务也不是免费的。

phpChart的基本要素

我最喜欢phpChart的地方就是它能让人从简单和最少量的代码入手。

phpChart精简版可以从这里下载http://phpchart.org/downloads/。下载文件并解压到网站根目录。

设置conf.php

我们要做的第一件事是设置变量SCRIPTPATH到conf.php文件的PhpChart类库。该变量代表了在你的Web服务器上的phpChart库的相对或绝对URL。

<ol class="dp-j"><li class="alt"><span><span>define(</span><span class="string">'SCRIPTPATH'</span><span>,</span><span class="string">'/phpChart/'</span><span>); </span></span></li></ol>
로그인 후 복사

创建最简单的图表

<ol class="dp-j"><li class="alt"><span><span>包含PHP头文件conf.php: </span></span></li><li><span>require_once(<span class="string">"../conf.php"</span><span>); </span></span></li></ol>
로그인 후 복사

调用构造函数C_PhpChartX,最后调用draw()函数。

<ol class="dp-j"><li class="alt"><span><span>$pc=</span><span class="keyword">new</span><span> C_PhpChartX(array(array(</span><span class="number">123</span><span>, </span><span class="number">34</span><span>, </span><span class="number">51</span><span>, </span><span class="number">22</span><span>, </span><span class="number">3</span><span>)), &lsquo;simplest_graph&rsquo;); </span></span></li><li><span>$pc->draw(); </span></li></ol>
로그인 후 복사

这就是开始你需要的代码。下面是经过渲染的输出。

这就是我所谓的最少量的编码。当你有一个团队的程序员来工作的时候,艰辛地去学习基础就没有意义了。任何程序员尽快想要做的一件事就是从一组新的库或工具埋头研究复杂的文档。

顺便说一句,构造函数中的第二个参数的命名对你的图表而言应该是唯一的。我键入的是“simplest_graph”,也可以是任何非空格字符串。它必须是一个唯一的值,这样你才可以在一个页面中拥有多个图表。

添加标题

你应该为你的图表添加标题,以便用户知道他们在看什么。

<ol class="dp-j"><li class="alt"><span><span>$pc->set_title(array(</span><span class="string">'text'</span><span>=>&rsquo;My Simplest Graph')); </span></span></li></ol>
로그인 후 복사

添加动画

pChart做不到的其中一件事就是动画。在phpChart中,动画支持通过简单地调用set_animate和传递true值即可使用。

<ol class="dp-j"><li class="alt"><span><span>$pc->set_animate(</span><span class="keyword">true</span><span>); </span></span></li></ol>
로그인 후 복사

就是这样。此时你的图表应该已经具备了标题和动画。完整的代码如下:

<ol class="dp-j"><li class="alt"><span><span>$pc = </span><span class="keyword">new</span><span> C_PhpChartX(array(array(</span><span class="number">123</span><span>, </span><span class="number">34</span><span>, </span><span class="number">51</span><span>, </span><span class="number">22</span><span>, </span><span class="number">3</span><span>)),</span><span class="string">'simplest_graph'</span><span>); </span></span></li><li><span>$pc->set_animate(<span class="keyword">true</span><span>); </span></span></li><li class="alt"><span>$pc->set_title(array(<span class="string">'text'</span><span>=></span><span class="string">'My Simplest Graph'</span><span>)); </span></span></li><li><span>$pc->draw(); </span></li></ol>
로그인 후 복사

代码实质

如果你在浏览器中查看来源,你会发现,phpChart自动包含了许多的JavaScript以及CSS文件,包括jquery.js、 jquery-ui,和jqplot.js、jquery-ui.css等。虽然图表在浏览器中通过客户端的JavaScript渲染,但在前端的代码完 全是PHP。

之所以受人欢迎是因为这样一来对于我——一个PHP开发人员而言就不再也需要担心JavaScript了,因为phpChart会为我自动处理。下面是在查看源代码时生成的全部JavaScript代码——是我前面四行PHP代码的结果。

<ol class="dp-j"><li class="alt"><span><span><script language=</span><span class="string">"JavaScript"</span><span> type=</span><span class="string">"text/javascript"</span><span>> </span></span></li><li><span>     var _simplest_graph_plot_properties; </span></li><li class="alt"><span>    $(document).ready(function(){ </span></li><li><span>    setTimeout( function() { </span></li><li class="alt"><span>    _simplest_graph_plot_properties = { </span></li><li><span>    <span class="string">"title"</span><span>:{ </span></span></li><li class="alt"><span>    <span class="string">"text"</span><span>:</span><span class="string">"My Simplest Graph"</span><span>,</span><span class="string">"show"</span><span>:</span><span class="number">1</span><span> </span></span></li><li><span>    },<span class="string">"animate"</span><span>:</span><span class="keyword">true</span><span>,</span><span class="string">"animateReplot"</span><span>:</span><span class="keyword">true</span><span> </span></span></li><li class="alt"><span>    } </span></li><li><span> </span></li><li class="alt"><span>    $.jqplot.config.enablePlugins = <span class="keyword">true</span><span>; </span></span></li><li><span>    $.jqplot.config.defaultHeight = <span class="number">300</span><span>; </span></span></li><li class="alt"><span>    $.jqplot.config.defaultWidth = <span class="number">400</span><span>; </span></span></li><li><span>    _simplest_graph= $.jqplot(<span class="string">"simplest_graph"</span><span>, </span></span></li><li class="alt"><span>           [[<span class="number">123</span><span>, </span><span class="number">34</span><span>, </span><span class="number">51</span><span>, </span><span class="number">22</span><span>, </span><span class="number">3</span><span>]], _simplest_graph_plot_properties); </span></span></li><li><span> </span></li><li class="alt"><span>    }, <span class="number">200</span><span> ); </span></span></li><li><span>    }); </span></li><li class="alt"><span></script> </span></li></ol>
로그인 후 복사

正如你可能也会注意到的,“simplest_graph<span style="color: #111111; font-family: 'Segoe UI', Arial, sans-serif;">&rdquo;</span>被用作JavaScript变量的一部分,如 _simplest_graph_plot_properties表示jqplot对象。这就是前面我所说的命名必须唯一的原因。

此外,该PHP数据组被自动转换为JavaScript数组,所以以下PHP数组:

<ol class="dp-j"><li class="alt"><span><span>array(array(</span><span class="number">123</span><span>, </span><span class="number">34</span><span>, </span><span class="number">51</span><span>, </span><span class="number">22</span><span>, </span><span class="number">3</span><span>)) </span></span></li></ol>
로그인 후 복사

成为JavaScript数组:

<ol class="dp-j"><li class="alt"><span><span>[[</span><span class="number">123</span><span>,</span><span class="number">34</span><span>,</span><span class="number">51</span><span>,</span><span class="number">22</span><span>,</span><span class="number">3</span><span>]] </span></span></li></ol>
로그인 후 복사

改变渲染器类型

PhpChart支持实现柱形图、折线图和堆栈图;带状线图;块图;气泡图;蜡烛图;gecko图;meter图;以及其他几种类型的图表。渲染器支持:

  • BarRenderer

  • BezierCurveRenderer

  • BlockRenderer

  • BubbleRenderer

  • CanvasAxisLabelRenderer

  • CanvasAxisTickRenderer

  • CategoryAxisRenderer

  • DateAxisRenderer

  • DonutRenderer

  • EnhancedLegendRenderer

  • FunnelRenderer

  • LogAxisRenderer

  • MekkoAxisRenderer

  • MekkoRenderer

  • MeterGaugeRenderer

  • OHLCRenderer

  • PyramidAxisRenderer

  • PieRenderer

如果你不指定类型的话,默认图表类型是折线图。要更改图表类型,需要调用set_series_default函数。例如,将上面的例子更改为饼图

<ol class="dp-j"><li class="alt"><span><span>$pc->set_series_default(array(</span><span class="string">'renderer'</span><span>=></span><span class="string">'plugin::PieRenderer'</span><span>)); </span></span></li></ol>
로그인 후 복사

请注意,我用的是phpChart企业版。 phpChart精简版只支持折线图。

数组和命名约定

这里还有一些值得注意的地方。首先,phpChart函数中使用的几乎所有参数是一个数组,不是全部,但几乎所有的都是。只需记住这一点,就能避免 调试时的大量头痛问题后面我将简要地覆盖调试功能)。其次,渲染器在phpChart中被称为“插件”,故而你必须像这样传递 “plugin::PieRenderer”,中间双冒号。对于自定义JavaScript中,用 “js::yourJavascriptFunctioName”。

高级phpChart:自定义JavaScript

到目前为止,所有我展示的都是PHP。在大多数情况下,对于简单的PHP函数调用,phpChart完全能做得很好。为了充分利用 phpChart,你或许会想要使用自定义JavaScript。例如,你可以用phpChart从JavaScript函数和外部源加载数据。

下面的sineRenderer是一个自定义JavaScript函数,用于定义从一组随机数显示正弦值。然后传递给set_data_renderer函数。

PHP:

<ol class="dp-j"><li class="alt"><span><span>$data1 = array(); </span></span></li><li><span>$pc = <span class="keyword">new</span><span> C_PhpChartX(array($data1),</span><span class="string">'basic_chart_4'</span><span>); </span></span></li><li class="alt"><span>$pc->set_title(array(<span class="string">'text'</span><span>=></span><span class="string">'Basic Chart with Custom JS'</span><span>)); </span></span></li><li><span>$pc->set_data_renderer(<span class="string">"js::sineRenderer"</span><span>); </span></span></li><li class="alt"><span>$pc->add_plugins(array(<span class="string">'pointLabels'</span><span>)); </span></span></li><li><span>$pc->set_animate(<span class="keyword">true</span><span>); </span></span></li><li class="alt"><span>$pc->draw(); </span></li><li><span> </span></li><li class="alt"><span>JavaScript: </span></li><li><span> </span></li><li class="alt"><span>sineRenderer = function() { </span></li><li><span>    var data = [[]]; </span></li><li class="alt"><span>    <span class="keyword">for</span><span> (var i=</span><span class="number">0</span><span>; i<</span><span class="number">13</span><span>; i+=</span><span class="number">0.5</span><span>) { </span></span></li><li><span>      data[<span class="number">0</span><span>].push([i, Math.sin(i)]); </span></span></li><li class="alt"><span>    } </span></li><li><span>    <span class="keyword">return</span><span> data; </span></span></li><li class="alt"><span>  }; </span></li></ol>
로그인 후 복사

想要知道set_data_renderer函数的更多内容可点击这里:http://phpchart.org/phpChart/docs/output/C_PhpChartX_set_data_renderer@.html

导出图表到图片

刚开始的时候,对此我很困扰,因为我不知道如何导出图表。事实证明,phpChart图表可以导出为可下载的图片,但这个过程并没有很好的记录下来。我发现添加以下代码到所有页面的底部,就可以扭转乾坤:

<ol class="dp-j"><li class="alt"><span><span><script type=</span><span class="string">"text/javascript"</span><span> </span></span></li><li><span>  src=<span class="string">"http://www.codeproject.com/phpChart/js/showjs.js"</span><span>></script> </span></span></li></ol>
로그인 후 복사

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

调试phpChart

最后,在结束之前,我要提一提phpChart的一个非常宝贵的特点。那就是它的内置调试功能。在其网站上,所有的在线例子http://phpchart.org/examples/)都有调试可以启用生动的演示和两个清晰的可方便移植下面代码的选项卡——分别是JavaScript和PHP。

要启用调试,只需添加以下代码行到conf.php文件:

<ol class="dp-j"><li class="alt"><span><span>define(</span><span class="string">'DEBUG'</span><span>, </span><span class="keyword">true</span><span>); </span></span></li></ol>
로그인 후 복사

最后的思考

PhpChart的一个主要好处是,通过使用这个工具,PHP程序员可以实现专业级的基于Web的图表——而无需深入了解HTML5和JavaScript知识。

如果你像我一样,也是前端编程的门外汉,但同样需要生成交互式的Web图表,那么你或许会喜欢phpChart。关于phpChart的HTML5图表例子已经完整地罗列到以下这个页面中。运气好的话,你也许并不需要文档——就可以直接理解代码。



www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1031255.htmlTechArticle基于PHP的超炫酷HTML5交互式图表 用PHP实现专业级的基于Web的图表,而无需深入的HTML5和JavaScript知识。 介绍 最近,我需要从一组PHP数据组快...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

매치 표현식 (PHP 8)과 스위치와 어떻게 다른지 설명하십시오. 매치 표현식 (PHP 8)과 스위치와 어떻게 다른지 설명하십시오. Apr 06, 2025 am 12:03 AM

PHP8에서 매치 표현식은 표현식의 값에 따라 다른 결과를 반환하는 새로운 제어 구조입니다. 1) 스위치 명령문과 유사하지만 실행 명령문 블록 대신 값을 반환합니다. 2) 경기 표현식은 엄격하게 비교되어 (===) 보안을 향상시킵니다. 3) 스위치 명세서에서 가능한 파손을 피하고 코드의 단순성과 가독성을 향상시킵니다.

See all articles