PHP图形操作之Jpgraph学习笔记


Posted in PHP onDecember 25, 2015

本文实例讲述了PHP图形操作之Jpgraph学习笔记。分享给大家供大家参考,具体如下:

一、Jpgraph安装配置

下载Jpgraph安装包

解压后放置磁盘中,(最好是放在和网页一起)

修改php.ini文件:

1、内存  memory_limit=X,至少为32M

2、执行时间  max_execution_time=X,对于复杂的图片加载时需要较多的时间,根据图片的复杂度做相应的修改

3、缓存  output_buffering  注释掉缓存,便于调试

二、使用Jpgraph创建图形的基本步骤(必要的)

1、包含所需要的类库文件

require_once();

2、初始化数据

$data=array();

可以是php程序中的固定数据,即静态数据,直接得到
可以是存储在文本文件中的数据
可以是存储在数据库中的数据
可以是通过URL参数传递的数据( GET 或 POST方式)

3、 创建Graph类实例

$graph=new Graph();

可以在此设置图形的尺寸

4、设置标题、x轴标题、y轴标题的内容,及其字体、颜色、位置等

5、创建对应的图实例

可以是折线图、柱形图、饼状图,3d等

6、将数据添加到图形上

$graph->Add();

7、显示图片

$graph->Stroke();

至此一个简单的图形就完成了

注意:

中文字体乱码

Gpgraph默认显示汉字时是把汉字编码认为gb2312,转化为utf-8以后再显示,如果文件的编码方式是gb2312,只需把SetFont()方法的第一个参数设置为FF_SIMSUN即可
如果是utf-8编码的,需要先把汉字编码转化为gb2312,这样汉字才能正常显示
转换编码方式可以使用  iconv("UTF-8","gb2312",$x);

一些常用的方法:

$graph->title->Set('设置图表的标题');
$graph->tabtitle->Set('设置图片头部文字');
$graph->xaxis->title->Set("设置X轴的标题");
$graph->yaxis->title->Set("设置Y轴的标题");
$graph->SetScale('textlin');//设置刻度值类型
$graph->img->SetMargin(50,40,40,55);//边框间距(左右上下)
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,12);//标题字体
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,10);
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,10);
$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD,12);//坐标柱上的字体
$graph->yaxis->SetFont(FF_SIMSUN,FS_BOLD,12);
$graph->title->SetColor('red'); ///标题颜色
$graph->xaxis->title->SetColor('red');
$graph->yaxis->title->SetColor('red');
$graph->xaxis->title->SetMargin(20);//距离坐标轴的距离
$graph->yaxis->title->SetMargin(20);//距离Y轴的距离
$linepot->SetColor('red');//折线的颜色(折线图)
$linepot->SetWeight(2);//折线的宽度
$linepot->value->SetFormat('%0.1f'); //值的格式化
$linepot->value->show(true);//显示值
$graph->SetBackGroundImage ( );设置背景
$graph->SetMarginColor('lightblue');//设置图形颜色
$graph->SetShadow();//
$graph->Set3DPerspecttive(); //设置3d效果图
/*倾斜3D效果 
 1、' SKEW3D_UP '
 2、' SKEW3D_DOWN'
 3、' SKEW3D_LEFT'
 4、' SKEW3D_RIGHT'*/
$p1->SetTheme('water');//设置样式
$p1->SetCenter(0.5,0.55);//设置图形位置
$graph->legend->Pos(0.1,0.9);//设置注释文字的位置
$graph->legend->SetFont(FF_SIMSUN,FS_BOLD,12);//设置注释文字的字体

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

PHP 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
php的字符串用法小结
Jun 08 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php随机取mysql记录方法小结
Dec 27 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP 实现链式操作
Mar 09 PHP
php实现scws中文分词搜索的方法
Dec 25 #PHP
php自定义分页类完整实例
Dec 25 #PHP
php导出生成word的方法
Dec 25 #PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 #PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 #PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 #PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 #PHP
You might like
Windows下安装Memcached的步骤说明
2010/04/25 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
php函数连续调用实例分析
2015/07/30 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Vue实现图书管理案例
2021/01/20 Vue.js
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
django_orm查询性能优化方法
2018/08/20 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
土建资料员岗位职责
2014/01/04 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
顶岗实习计划书
2014/01/10 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
节能标语大全
2014/06/21 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
自书遗嘱范文
2015/08/07 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers