PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图


Posted in PHP onMay 15, 2017

JpGraph简介

JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序。

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

JpGraph的配置

(1)修改文件php.ini

在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph。

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

(2)检查PHP是否支持GD库

在php.ini文件中找到语句;extension=php_gd2.dll。把上述语句前的;号去掉,即去掉注释。如果因为PHP版本不同而找不到此语句,则可直接添加extension=php_gd2.dll

(3)修改文件jpgraph_gb2312.php

找到函数:function gb2utf8($gb)

把函数修改为:

function gb2utf8($gb) {
  return $gb;
  }

即不使用gb2编码方式转utf8方式的那段代码。

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

折线图

<?php 
require_once ("jpgraph/jpgraph.php"); 
require_once ("jpgraph/jpgraph_line.php"); 

$data1 = array(523,634,371,278,685,587,490,256,398,545,367,577); //第一条曲线的数组 

$graph = new Graph(500,300);  
$graph->SetScale("textlin"); 
$graph->SetShadow();   
$graph->img->SetMargin(60,30,30,70); //设置图像边距 

$graph->graph_theme = null; //设置主题为null,否则value->Show(); 无效 

$lineplot1=new LinePlot($data1); //创建设置两条曲线对象 
$lineplot1->value->SetColor("red"); 
$lineplot1->value->Show(); 
$graph->Add($lineplot1); //将曲线放置到图像上 

$graph->title->Set("CDN流量图");  //设置图像标题 
$graph->xaxis->title->Set("月份"); //设置坐标轴名称 
$graph->yaxis->title->Set("流 量(Gbits)"); 
$graph->title->SetMargin(10); 
$graph->xaxis->title->SetMargin(10); 
$graph->yaxis->title->SetMargin(10); 

$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置字体 
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); 
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);  
$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth()); 
$graph->Stroke(); //输出图像 
?>

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

柱状图

<?php 
require_once ("jpgraph/jpgraph.php"); 
require_once ("jpgraph/jpgraph_bar.php"); 

$data = array(19,23,34,38,45,67,71,78,85,87,96,145);      
$ydata = array("一","二","三","四","五","六","七","八","九","十","十一","十二"); 

$graph = new Graph(500,300); //创建新的Graph对象 
$graph->SetScale("textlin"); //刻度样式 
$graph->SetShadow();     //设置阴影 
$graph->img->SetMargin(40,30,40,50); //设置边距 

$graph->graph_theme = null; //设置主题为null,否则value->Show(); 无效 

$barplot = new BarPlot($data); //创建BarPlot对象 
$barplot->SetFillColor('blue'); //设置颜色 
$barplot->value->Show(); //设置显示数字 
$graph->Add($barplot); //将柱形图添加到图像中 

$graph->title->Set("CDN流量图");  
$graph->xaxis->title->Set("月份"); //设置标题和X-Y轴标题 
$graph->yaxis->title->Set("流 量(Mbits)");                                    
$graph->title->SetColor("red"); 
$graph->title->SetMargin(10); 
$graph->xaxis->title->SetMargin(5); 
$graph->xaxis->SetTickLabels($ydata); 

$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置字体 
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); 
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); 
$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD); 
$graph->Stroke(); 
?>

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

饼状图

<?php 
require_once ("jpgraph/jpgraph.php"); 
require_once ("jpgraph/jpgraph_pie.php"); 
require_once ("jpgraph/jpgraph_pie3d.php"); 

$data = array(19,23,34,38,45,67,71,78,85,87,90,96); 

$graph = new PieGraph(550,500); 
$graph->SetShadow(); 

$graph->title->Set("CDN流量比例"); 
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); 

$pieplot = new PiePlot3D($data); //创建PiePlot3D对象 
$pieplot->SetCenter(0.4, 0.5); //设置饼图中心的位置 
$pieplot->SetLegends($gDateLocale->GetShortMonth()); //设置图例 
$graph->Add($pieplot); 
$graph->Stroke(); 
?>

PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
用PHP读注册表
Oct 09 PHP
mysql 的 like 问题,超强毕杀记!!!
Jan 18 PHP
php 变量定义方法
Jun 14 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
php格式化json函数示例代码
May 12 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PDO::exec讲解
Jan 28 PHP
php使用curl实现简单模拟提交表单功能
May 15 #PHP
PHP读取Excel类文件
May 15 #PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 #PHP
PHP从数组中删除元素的四种方法实例
May 12 #PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 #PHP
php中时间函数date及常用的时间计算
May 12 #PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 #PHP
You might like
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
广告代码静态化js通用函数
2007/05/09 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
js实现数字滚动特效
2019/12/16 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
如何搜索查找并解决Django相关的问题
2014/06/30 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
营销部内勤岗位职责
2014/04/30 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
情人节活动总结范文
2015/02/05 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
JS class语法糖的深入剖析
2022/07/07 Javascript