PHP JpGraph生成各类统计图实例程序学习:
其实在JpGraph库中的Examples文件夹中有很多的小例子程序,但它比较散碎,估计很多人都不愿意看或懒得看,今天我就调用我上次
写的封装好的JpGraph类来写一个实例程序来说明一下其使用,例子比较简单,在这一个代码中,通过简单的几行代码就可以实现各种图表
的绘制。如果不清楚JpGraph库和我写的JpGraph封装类的话,可以看一下我的红心草博客前面的两篇文章:
JpGraph下载及使用
利用PHP封装的JpGraph类
下面我就样例代码进行相关说明分析:
首先是引用库文件:
require(dirname(__FILE__) . '/includes/cls_jpgraph.php'); //为我写的封装类
/*JpGraph相关库文件,其实它们可以直接在我写的cls_jpgraph.php中调用,这里主要是为了查看直观方便*/
require(dirname(__FILE__) . '/jpgraph/jpgraph.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_line.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_bar.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_pie.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_pie3d.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_antispam.php');
引用库函数文件以后,就是设置基本数据及配置,注意,下面的数据在数组在实际应用中应该是从数据中获取,
/*数据数组,实际应用中数据从数据库中获得*/
$ydata = array(113,333,824,152,552,123,323,133,543,724);
$ydata1 = array(313,232,424,552,352,423,223,433,243,424);
$bdata = array(34,22,20);
/*图形宽高设置*/
$width = 350;
$height= 250;
接下来就是创建cls_jpgraph对象,注意在这里是我封装的jpgraph对象。
/*创建图形对象*/
$jpg = new cls_jpgraph($width,$height);
/*图表与四周的距离位置*/
$margin = array(
'left' => '40',
'right' => '20',
'top' => '20',
'bottom'=> '40'
);
一般我们需要对图形的相关属性进行设置,此时就可以调用方法set_jpgraph来进行设置。
/*设置图形显示相关属性*/
$jpg->set_jpgraph('textlin','xiaolinnet.com','Oct 03 2010','green','X title content','y title content',
true,true,$margin);
set_jpgraph方法的参数较多,在这里我从左到右进行简单说明:图形类型,标题,子标题,背景颜色,x轴
文本内容,y轴文本内容,是否显示横网格,是否显示竖网格,边距数组。
设置完成后,我们就可以来创建对应的图表对象来显示了,在这里很简单的。
创建线性图表并显示
$pot = $jpg->create_lineplot($ydata,'blue',2); //创建线性图表
$jpg->display($pot);
图示:
创建柱状图表并在上面添加文本显示
$pot = $jpg->create_barpot($ydata,'red',0.4); //创建柱状图表1
txt = $jpg->create_text('Hello,World'); //创建文本,可以不用返回
$jpg->display($pot);
图示:
创建柱状对比图表并显示
$pot1 = $jpg->create_barpot($ydata,'red',0.4); //创建柱状图表1
$pot2 = $jpg->create_barpot($ydata1,'orange',0.4); //创建柱状图表2
$potarr = array($pot1,$pot2);
$potgroup = $jpg->create_bargroup($potarr); //创建柱状图组表
$jpg->display($potgroup);
图示:
以上图表应该是平时最常用到的,下面在介绍一个更常用的,就是图片验证码,图片验证码的
用途很广,包括用户注册,系统登录,发表文章,留言等很多地方都能用到,在这里只需要简
单的一句代码就可以输出一个图片验证码。
$jpg->get_auth_code(4); //显示验证码,可用于登陆,注册或留言。
图示:
![]()
实际对于get_auth_code()可以在cls_jpgraph.php中写成静态函数,然后直接调用该方法即可,因
为它并不依赖于$jpg对象,,只需稍作改动即可,你也可以把它直接拿出来作为函数进行使用。
注意:其实还有其他一些图表样式等我可能完全覆盖。不过它实际并不难,你只要用心专注去学习,很
容易的。如果你有兴趣,可以拿我的cls_jpgraph.php文件和上面这个例子进行修改和学习,我想你会
很快能够掌握JpGraph库的使用的。
下面是完整的实例代码文件(所有实例代码全部写在一个文件中了):
<?php
/**
* 编写的测试生成图表图形程序
*
**/
define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/cls_jpgraph.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_line.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_bar.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_pie.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_pie3d.php');
require(dirname(__FILE__) . '/jpgraph/jpgraph_antispam.php');
/*数据数组*/
$ydata = array(113,333,824,152,552,123,323,133,543,724);
$ydata1 = array(313,232,424,552,352,423,223,433,243,424);
$bdata = array(34,22,20);
/*图形宽高设置*/
$width = 500;
$height= 350;
/*创建图形对象*/
$jpg = new cls_jpgraph($width,$height);
/*图表与四周的距离位置*/
$margin = array(
'left' => '40',
'right' => '20',
'top' => '20',
'bottom'=> '40'
);
/*设置图形显示相关属性*/
$jpg->set_jpgraph('textlin','xiaolinnet.com','Oct 03 2010','green','X title content','y title content',true,true,$margin);
//$pot = $jpg->create_lineplot($ydata,'blue',2); //创建线性图表
$pot1 = $jpg->create_barpot($ydata,'red',0.4); //创建柱状图表1
$pot2 = $jpg->create_barpot($ydata1,'orange',0.4); //创建柱状图表2
$potarr = array($pot1,$pot2);
$potgroup = $jpg->create_bargroup($potarr); //创建柱状图组表
//$txt = $jpg->create_text('Hello,World'); //创建文本
//$jpg->get_auth_code(4); //显示验证码,可用于登陆,注册或留言。
$jpg->display($potgroup); //在web页面上显示
?>