PHP生成图表pChart的示例解析


Posted in PHP onJuly 31, 2020

pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:

PHP生成图表pChart的示例解析

主要分为三步:

  1. * 读取用于生成图表数据(数据库、文件)
  2. * 设计图表样式(圆角、底色等)
  3. * 制作标签、题目、图例并生成图表

下面看一个简单的柱状图表:

PHP生成图表pChart的示例解析

代码如下:

<?php
 // Standard inclusions 
 include("pChart/pData.class");
 include("pChart/pChart.class");

 // Dataset definition 
 $DataSet = new pData;
 //图表数据
 $DataSet->AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1");
 $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2");
 $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3");
 $DataSet->AddAllSeries();
 $DataSet->SetAbsciseLabelSerie();
 //数据图例
 $DataSet->SetSerieName("Microsoft","Serie1");
 $DataSet->SetSerieName("IBM","Serie2");
 $DataSet->SetSerieName("Google","Serie3");

 // Initialise the graph
 $Test = new pChart(700,230);
 //设置图表尺寸、样式
 $Test->setFontProperties("Fonts/tahoma.ttf",8);
 $Test->setGraphArea(50,30,680,200);
 $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
 $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
 $Test->drawGraphArea(255,255,255,TRUE);
 $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);
 $Test->drawGrid(4,TRUE,230,230,230,50);

 // Draw the 0 line
 $Test->setFontProperties("Fonts/MankSans.ttf",6);
 $Test->drawTreshold(0,143,55,72,TRUE,TRUE);

 // Draw the bar graph
 //柱状图要使用drawBarGraph()
 $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80);


 // Finish the graph
 //制作图例、标题、字体等属性
 $Test->setFontProperties("Fonts/MankSans.ttf",10);
 $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255);
 $Test->setFontProperties("Fonts/MankSans.ttf",10);
 $Test->drawTitle(50,22,"Example",50,50,50,585);
 
 //生成图表
 $imageFile = "example12.png";
 $Test->Render($imageFile);
 echo '<img src="'.$imageFile.'">';
?>

这个是雷达效果的:

PHP生成图表pChart的示例解析

代码:

<?php
 // Standard inclusions 
 include("pChart/pData.class");
 include("pChart/pChart.class");

 // Dataset definition 
 $DataSet = new pData;
 $DataSet->AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label");
 $DataSet->AddPoint(array(6,4,7,4,5),"Serie1");
 $DataSet->AddPoint(array(2,3,5,2,4),"Serie2");
 $DataSet->AddSerie("Serie1");
 $DataSet->AddSerie("Serie2");
 $DataSet->SetAbsciseLabelSerie("Label");


 $DataSet->SetSerieName("Reference","Serie1");
 $DataSet->SetSerieName("Tested computer","Serie2");

 // Initialise the graph
 $Test = new pChart(400,400);
 $Test->setFontProperties("Fonts/tahoma.ttf",8);
 $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240);
 $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230);
 $Test->setGraphArea(30,30,370,370);
 $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255);
 $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220);

 // Draw the radar graph
 //要使用drawRadarAxis()生成雷达效果
 $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230);
 $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20);

 // Finish the graph
 $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255);
 $Test->setFontProperties("Fonts/tahoma.ttf",10);
 $Test->drawTitle(0,22,"Example",50,50,50,400);
 
 $imageFile = "example8.png";
 $Test->Render($imageFile);
 echo '<img src="'.$imageFile.'">';
?>

再看几个其他的效果

1,饼图:

PHP生成图表pChart的示例解析

2, 双座标曲线图:

PHP生成图表pChart的示例解析

3, 层叠柱状图:

PHP生成图表pChart的示例解析

4, 多图表:

PHP生成图表pChart的示例解析

图表的种类已经相当丰富了,具体图表设置请参考

到此这篇关于PHP生成图表pChart的示例解析的文章就介绍到这了,更多相关PHP生成图表pChart内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
Gregarius中文日期格式问题解决办法
Apr 22 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
PHP仿微信发红包领红包效果
Oct 30 PHP
php连接mysql数据库
Mar 21 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
基于php伪静态的实现方法解析
Jul 31 #PHP
PHP底层运行机制与工作原理详解
Jul 31 #PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 #PHP
PHP网页缓存技术优点及代码实例
Jul 29 #PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 #PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 #PHP
关于PHP中interface的用处详解
Jul 26 #PHP
You might like
用Flash图形化数据(一)
2006/10/09 PHP
使用php计算排列组合的方法
2013/11/13 PHP
php如何连接sql server
2015/10/16 PHP
微信支付扫码支付php版
2016/07/22 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
react实现换肤功能的示例代码
2018/08/14 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
python虚拟环境完美部署教程
2019/08/06 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
python os模块在系统管理中的应用
2020/06/22 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
优秀演讲稿范文
2013/12/29 职场文书
给老婆道歉的话
2015/01/20 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
浅谈python中的多态
2021/06/15 Python
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers