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脚本的10个技巧(3)
Oct 09 PHP
php生成EXCEL的东东
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
php self,$this,const,static,-&amp;gt;的使用
Oct 22 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
php获取文件内容最后一行示例
Jan 09 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
Apr 19 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 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
世界上第一台立体声收音机
2021/03/01 无线电
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php 魔术方法使用说明
2009/10/20 PHP
劣质的PHP代码简化
2010/02/08 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
webpack项目轻松混用css module的方法
2018/06/12 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
Element Input输入框的使用方法
2020/07/26 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python3学习笔记之多进程分布式小例子
2018/02/13 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
Python: 传递列表副本方式
2019/12/19 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
数据库基础的一些面试题
2012/02/25 面试题
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Golang 遍历二叉树
2022/04/19 Golang