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 相关文章推荐
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
redis 队列操作的例子(php)
Apr 12 PHP
destoon常用的安全设置概述
Jun 21 PHP
PHP7.0安装笔记整理
Aug 28 PHP
微信支付开发动态链接Native支付
Jul 12 PHP
PHP类相关知识点实例总结
Sep 28 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
php计算整个目录大小的方法
2015/06/01 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Django实现快速分页的方法实例
2017/10/22 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Europcar意大利:汽车租赁
2019/07/07 全球购物
linux面试相关问题
2013/04/28 面试题
物业经理求职自我评价
2013/09/22 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
给面试官的感谢信
2014/02/01 职场文书
意向协议书范本
2014/04/23 职场文书
副总经理岗位职责
2015/02/02 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
小学数学教学反思范文
2016/02/16 职场文书