PHP JpGraph类库的介绍以及基本用法

JpGraph是一个面向对象的图形创建库,用于PHP5(> = 5.1)和PHP7.0该库完全用PHP编写,可以在任何PHP脚本中使用(支持CGI / APXS / CLI版本的PHP),现在最新的版本是4.2.6( JpGraph 4.x系列支持PHP5(PHP 5.1.0或更高版本)和PHP 7(PHP 7.0,7.1和7.2))
JpGraph能做什么呢?
以前用PHP作图时我们是使用PHP内置GD库用来画图操作图片,但是它提供的函数太多难记,不好操作,需要掌握复杂抽象的画图函数,或者借助一些网上下载的画柱形图、饼形图的类来实现,而JpGraph图表类库的出现,它使得作图变成了一件非常简单的事情,你只需从数据库中取出相关数据,定义标题,图表类型,然后的事情就交给JpGraph,只需掌握为数不多的JpGraph内置函数,就可以画出非常炫目的图表,比如经常用到的折线图,柱状图,饼状图等
这里我通过几个常见的例子来介绍一下JpGraph的基本使用
首先去官网下载JpGraph https://jpgraph.net/download/
我这里下载的是最新的4.2.6版本 php版本 7.0.12
下载解压后将解压文件中的src移到你的项目中即可(src中Examples有官网提供的非常多的例子,研究这些demo是学习JpGraph最好的途径)
注意:使用JpGraph需要开启GD库
1.折线图X-Y
折线图X-Y
代码如下:

    <?php
    //引入类库
    require_once "./src/jpgraph.php"; //核心文件
    require_once "./src/jpgraph_line.php";
    $data =array(0=>3,1=>12,2=>18,3=>30,4=>28,5=>33,6=>43,7=>39,8=>36,9=>29,10=>15,11=>10);
    //得到Graph对象 weight height
    $graph=new Graph(600,400);
    /*
    int 整数
    text 文本
    lin直线
    log 对数
    textint 指横坐标文本 纵坐标整数
     */
    //设置横纵坐标刻度样式
    //SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1)  设置X和Y轴样式及Y轴的最小值最大值,X轴最小值最大值
    $aAxisType = 'textint';
    $graph->SetScale($aAxisType);
    //设置统计图标题
    $graph->title->Set('this is a test');
    //得到LinePlot对象
    $linePlot = new LinePlot($data);
    //设置图例
    $linePlot->SetLegend('tuli');
    //将统计图添加到画布上
    $graph->Add($linePlot);
    //设置统计图的颜色,一定要在添加到画布之后再设置
    $linePlot->SetColor('red');
    //输出
    $graph->Stroke();
    //保存画布
    //$graph->Stroke('./test.png');

2.饼状图
饼状图
代码如下:

<?php
require_once "../src/jpgraph.php";
require_once "../src/jpgraph_pie.php";
//模拟数据
$data=array(0=>3.5,1=>4.6,2=>9.1,3=>21.9,4=>42.3,5=>90.7,6=>183.5,7=>127.5,8=>61.4,9=>33.5,10=>11.5,11=>4.4);
//创建画布
$graph=new PieGraph(800,500);
//设置图像边界范围
$graph->img->SetMargin(30,30,80,30);
//设置标题
$graph->title->Set("PiePlot Test");
//得到饼图对象
$piePlot=new PiePlot($data);
//设置图例
$piePlot->SetLegends(array(1,2,3,4,5,6,7,8,9,10,11,12));
//设置图例位置
$graph->legend->Pos(0.01,0.45,"left","top");
//添加到画布中
$graph->Add($piePlot);
//输出画布
$graph->Stroke();

中文乱码如何解决?
1.支持标题中文
修改jpgraph_ttf.inc.php
搜索CHINE_TTF_FONT选项,修改常量的值使支持中文的字体

define('CHINESE_TTF_FONT', 'SIMYOU.TTF');

设置标题前,加上这段代码

$graph->title->SetFont(FF_CHINESE);

2.支持图例中文
修改jpgraph_legend.inc.php,将$font_family修改成FF_CHINESE

public $font_family=FF_DEFAULT,$font_style=FS_NORMAL,$font_size=8;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值