php使用Jpgraph创建折线图效果示例


Posted in PHP onFebruary 15, 2017

本文实例讲述了php使用Jpgraph创建折线图效果。分享给大家供大家参考,具体如下:

在企业运营中,经常需要对各种数据进行统计,利用图表动态分析不同的数据表中的数据,可以使数据显示的更加直观。

例:应用Jpgraph技术绘制包含两种图书销售走势的折线图。

为了能够使用Jpgraph的功能,首先在程序中导入Jpgraph类库,然后创建两个数组分别表示两种图书的年度销售情况,创建Graph类的对象,并用创建的数组作为参数创建两个LinePlot类的对象。设置统计图的标题、刻度、背景色和折线颜色等参数,并将两个LinePlot对象添加到统计图对象中。

过程如下:

(1)在程序中导入Jpgraph类库及直线绘制功能。

require_once 'jpgraph/src/jpgraph.php';
require_once 'jpgraph/src/jpgraph_line.php';

(2)创建统计数据,并保存到一维数组中。

$data1 = array(89, 78, 99, 65, 92, 85, 85, 55, 64, 79, 85, 98);//设置统计数据
$data2 = array(68, 70, 69, 80, 50, 60, 75, 65, 75, 65, 80, 89);//设置统计数据

(3)创建统计图对象,并设置坐标的刻度样式

$graph = new Graph(600, 300);//创建统计图对象
$graph->SetScale('textlin');//设置刻度样式
$graph->SetY2Scale('lin');
$graph->SetShadow();//设置背景带阴影
$graph->img->SetMargin(40, 50, 20, 70);// 设置图表灰度四周边距,顺序为左右上下
$graph->title->Set(iconv('utf-8', 'GB2312//IGNORE', '图书销售走势表'));//设置走势图的标题

(4)创建LinePlot对象,并将创建后的对象添加到统计图的对象中。

$lineplot1 = new LinePlot($data1);//建立LinePlot对象
$lineplot2 = new LinePlot($data2);//建立LinePlot对象
$graph->Add($lineplot1);
$graph->AddY2($lineplot2);

(5)设置统计图和坐标轴的标题内容和文字样式,并输出统计图

$graph->xaxis->title->Set(iconv('utf-8', 'GB2312//IGNORE', "月份"));//设置x轴的标题
$graph->yaxis->title->Set(iconv('utf-8', 'GB2312//IGNORE', "book A 销售金额(万元)"));//设置y轴的标题
$graph->y2axis->title->Set(iconv('utf-8', 'GB2312//IGNORE', "book B 销售金额(万元)"));//设置y轴的标题
$graph->y2axis->title->SetMargin(20);//设置右边的title到图的距离
$graph->title->SetFont(FF_SIMSUN, FS_BOLD);//设置字体
$graph->yaxis->title->SetFont(FF_SIMSUN, FS_BOLD);
$graph->y2axis->title->SetFont(FF_SIMSUN, FS_BOLD);
$graph->xaxis->title->SetFont(FF_SIMSUN, FS_BOLD);
$lineplot1->SetColor('red');//设置颜色
$lineplot2->SetColor('blue');
$lineplot1->SetLegend('book A');//绑定
$lineplot2->SetLegend('book B');
$graph->legend->SetLayout(LEGEND_HOR);
$graph->legend->Pos(0.4, 0.95, 'center', 'bottom');
//图例文字框的位置 0.4,0.95 是以右上角为基准的,0.4是距左右距离,0.95是上下距离。
$graph->Stroke();//输出

运行结果如下:

php使用Jpgraph创建折线图效果示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
关于crontab的使用详解
Jun 24 PHP
sae使用smarty模板的方法
Dec 17 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
PHP 出现 http500 错误的解决方法
Mar 09 PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 #PHP
PHP反射机制原理与用法详解
Feb 15 #PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 #PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 #PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 #PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 #PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 #PHP
You might like
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP crc32()函数讲解
2019/02/14 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
跟老齐学Python之重回函数
2014/10/10 Python
python对json的相关操作实例详解
2017/01/04 Python
python实现TF-IDF算法解析
2018/01/02 Python
python的Tqdm模块的使用
2018/01/10 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
体育教育个人自荐信范文
2013/12/01 职场文书
行政部主管岗位职责
2013/12/28 职场文书
档案信息化建设方案
2014/05/16 职场文书
文化产业实施方案
2014/06/07 职场文书
企业投资意向书
2015/05/09 职场文书
高中开学感言
2015/08/01 职场文书
宪法宣传标语100条
2019/10/15 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
Vue操作Storage本地化存储
2022/04/29 Vue.js