日常开发中经常需要做图表,比如线状图、饼状图、柱状图等等,用PHP作图时需要使用复杂抽象的画图函数,或者借助一些网上下载的花柱形图、饼形图的类来实现,没有一个统一的chart类来实现图表的快速开发,非常麻烦。
现在我们有了一个新的选择:JpGraph。专门提供图表的类库。它使得作图变成了一件非常简单的事情,你只需从数据库中取出相关数据,定义标题,图表类型,然后的事情就交给JpGraph,只需掌握为数不多的JpGraph内置函数(可以参照JpGraph附带例子学习),就可以画出非常炫目的图表!

要求:确保你的PHP版本最低为4.04(最好是4.1.1),并且支持GD库。必须确保GD库可以正常运行,可以通过运行phpinfo()来查看GD库的信息是否存在的方法来判断。同时要有要求GD库的版本应为2.0,而不是1.0。
附件里的JpGraph已经修改为支持thinkphp,可以生成饼状图,线状图,柱状图等等,只需要按照说明放入第三方类库,使用时倒入即可。以thinkphp2.1为例:先将附件里面的Jpgraph.zip插件解压,复制到ThinkPHP/Vendor目录下面,然后将驱动文件”Chart.class.php”复制到’ThinkPHP/Lib/Think/Util’,这个目录下面,然后就可以直接在action文件里面直接使用。

3.1.2版本的话可以这么放置:1、将Jpgraph.zip解压到ThinkPHP/Extend/Vendor目录,目录不存在自己创建。2、将Chart.class.php放置到ThinkPHP/Extend/Library/ORG/Util目录中,目录不存在自己创建。使用之前请先导入Chart类,方法为 import(“ORG.Util.Chart”);即可。

下面提供一些方法供参考。

class TestAction extends Action{

//3D饼图
function index(){
$chart = new Chart();
$title = “3D饼图”; //标题
$data = array(20,27,45,75,90,10,20,40); //数据
$size = 140; //尺寸
$width = 750; //宽度
$height = 350; //高度
$legend = array(“aaaa “,”bbbb”,”cccc”,”dddd “,”eeee “,”ffff “,”gggg “,”hhhh “);//说明
$chart->create3dpie($title,$data,$size,$height,$width,$legend);
}

//柱状图
function test1(){
$chart = new Chart();
$title = “柱状图”; //标题
$data = array(20,27,45,75,90,10,80,100); //数据
$size = 140; //尺寸
$width = 750; //宽度
$height = 350; //高度
$legend = array(“aaaa “,”bbbb”,”cccc”,”dddd “,”eeee “,”ffff “,”gggg “,”hhhh “);//说明
$chart->createcolumnar($title,$data,$size,$height,$width,$legend);
}
//线图
function test1(){
$chart = new Chart();
$title = “柱状图”; //标题
$data = array(20,27,45,75,90,10,80,100); //数据
$size = 140; //尺寸
$width = 750; //宽度
$height = 350; //高度
$legend = array(“aaaa “,”bbbb”,”cccc”,”dddd “,”eeee “,”ffff “,”gggg “,”hhhh “);//说明
$chart->createmonthline($title,$data,$size,$height,$width,$legend);
}

//环状图
function test1(){
$chart = new Chart();
$title = “柱状图”; //标题
$data = array(20,27,45,75,90,10,80,100); //数据
$size = 140; //尺寸
$width = 750; //宽度
$height = 350; //高度
$legend = array(“aaaa “,”bbbb”,”cccc”,”dddd “,”eeee “,”ffff “,”gggg “,”hhhh “);//说明
$chart->createring($title,$data,$size,$height,$width,$legend);
}

//横柱图
function test2(){
$chart = new Chart();
$title = “柱商务图”; //标题
$subtitle = “2012 年6月”;
$data = array(20,27,45,75,90,100,80,100,300,500,1000,200,300,100,400,600); //数据
$size = 140; //尺寸
$width = 750; //宽度
$height = 350; //高度
$legend = array(“张三1″,”张三2″,”张三3″,”张三4″,”张三5″,”张三6″,”张三7″,”张三8″);//说明
$chart = new Chart();
$chart->createhorizoncolumnar($title,$subtitle,$data,$size,$height,$width,$legend);
}
}

注意点:
1.$legend与$data这两个数组,为索引数组,下标必须连续,间隔的话,生成的图标就会产生错位。
2.生成的为一张图片,其他地方可以调用,使用img标签即可。

PS:phpexcel源码包下载地址:

http://pan.baidu.com/share/link?shareid=471807&uk=100806524

解压密码:www.ithinkphp.com

tp可用的超强第三方图表类库-JpGraph的更多相关文章

  1. 超强可视化图表工具:Smartbi!!

    要制作出专业的可视化图表,还是需要一定的学习成本的,并且需要大量的时间.并且即使是制作出来,配色也是一大难题,对于一般人而言,通常会通过两种方式实现可视化大屏的制作: 1.写代码 大部分人可能会选择大 ...

  2. PHP图标类库 - JpGraph使用详解

    http://w3note.com/web/181.html 微信平台开发的推广支持应用里,为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二 ...

  3. 三个常用的PHP图表类库

    Jpgraph 只要把example中的require_once路径改了就放进来用吧,我下的是最新版的jpgraph-3.5.0b1,反正测试嘛,我记得跟3.0.7还是有差别的,把文件名都重新命名过了 ...

  4. php统计图类库JpGraph

    php统计图类库JpGraph JpGraph官网地址:https://jpgraph.net/. (1)下载类库: 下载地址:https://jpgraph.net/download/. 选择版本, ...

  5. Android图表类库:WilliamChart

    WilliamChart是基于Views的Android图表类库,帮助开发者在Android应用中实现折线图.柱状图和堆叠柱状图.数值发生变化时图表也会以动画的效果发生变化. At the momen ...

  6. 让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】

    JAVA的时间日期处理一直是一个比较复杂的问题,大多数程序员都不能很轻松的来处理这些问题.首先Java中关于时间的类,从 JDK 1.1 开始,Date的作用很有限,相应的功能已由Calendar与D ...

  7. 使用CocoaPods管理第三方开源类库

    iOS开发中经常会用到许多第三方开源类库,比如AFNetworking.FMDB.JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新. ...

  8. xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误

    xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 一:场景 xcode 同时引入了 libA.a, libB.a 两个静态类库,如果 这两个静态类库之中 ...

  9. 5个最顶级jQuery图表类库插件-Charting plugin

    转载: http://www.cnblogs.com/chu888chu888/archive/2012/12/22/2828962.html 作者:Leonel Hilario翻译:Terry li ...

随机推荐

  1. dede调用指定栏目的标签

    {dede:type typeid='1'} <a href="[field:typelink /]">[field:typename /]</a> {/d ...

  2. 谈谈自己对于Auth2.0的见解

    Auth的原理网上有很多,我这里就不在赘述了. 这里有张时序图我个人觉得是比较合理而且直观的,(感谢这篇博文:http://justcoding.iteye.com/blog/1950270) 参照这 ...

  3. linux下tar用法

    以下是linux下tar的用法,转一下,以便方便自己看(这里没把rar,zip类的转过来,一般rar,zip在linux下基本没人用,基本上是zip,unzip,rar,unrar,这些命令,并且ra ...

  4. Cows(poj 2481 树状数组)

    Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 15301   Accepted: 5095 Description ...

  5. c#以文件流的形式输出xml(可以解决内存溢出)-XmlTextWriter

    1.XmlTextWriter 表示提供快速.非缓存.只进方法的编写器,该方法生成包含 XML 数据(这些数据符合 W3C 可扩展标记语言 (XML) 1.0 和“XML 中的命名空间”建议)的流或文 ...

  6. jquery判断元素是否隐藏的多种方法

    第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){    alert("被 ...

  7. Go代理,修改标题

  8. uestc poj2559 秋实大哥去打工

    //感觉有必要把这题放博客上待复习 刚刚写解题报告的时候发现自己又不会做这题了 //我不会告诉你这题绝对是命题人抄poj2559 这题使用一个单调递增的栈,栈内存储的元素有两个值,一个高度,一个长度. ...

  9. 一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

    前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法. 今天有空写了一下.代码如下,注释比较详细: using System; usi ...

  10. 用到的Python运算符

    假设变量a为10,变量b为20. 算术运算符  比较运算符 赋值运算符 逻辑运算符 运算符优先级 对于逻辑运算符,not的优先级最大,or的优先级最小.它们三个的优先级排序为:not > and ...