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下图片文字混合水印与缩略图实现代码
Dec 11 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
用php实现分页效果的示例代码
Dec 10 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
海贼王:最美的悬赏令!
2020/03/02 日漫
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
Three.js快速入门教程
2016/09/09 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
Python Deque 模块使用详解
2014/07/04 Python
Python3.4解释器用法简单示例
2019/03/22 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
python和js交互调用的方法
2020/06/23 Python
详解python metaclass(元类)
2020/08/13 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
料理师求职信
2014/01/30 职场文书
小露珠教学反思
2014/04/30 职场文书