• tp可用的超强第三方图表类库-JpGraph


    日常开发中经常需要做图表,比如线状图、饼状图、柱状图等等,用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

  • 相关阅读:
    C#删除只读文件
    在超链接href中实现form的提交
    C#中复制数组
    C#判断字符串中是否包含一个子字符串是可以直接使用Contains()方法
    C#使用System.xml.linq来生成XML文件
    C# 获取SHA256码
    C#中要使ListBox使用AddRange()时,能够触发SelectedValueChanged事件
    报错:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop bei
    elementUI el-select 中disabled设置
    实现element-ui中table点击一行展开
  • 原文地址:https://www.cnblogs.com/qiandu/p/3934258.html
Copyright © 2020-2023  润新知