PHP教程之jpgraph+php+mysql生成柱状图(含附件)
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。很具体的正文,但愿对像我一样刚入门的伴侣有匡助,附代码:
CREATE DATABASE `jpgraph`; //创立数据库
USE `jpgraph`;
//创立测试表
DROP TABLE IF EXISTS `jpg_temp`;
CREATE TABLE `jpg_temp` (
`year` int(11) NOT NULL,
`money` float NOT NULL,
`number` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
//测试数据
insert into `jpg_temp`(`year`,`money`,`number`) values (2007,150.78,120),(2008,100,90),(2009,120,100),(2010,100,78),(2011,70.56,60),(2012,90,100),(2013,140,180),(2014,150,200),(2015,130,110),(2016,110.85,150),(2020,180,230),(2050,200,210);
//数据库链接文件
/*
* ProjectName:jpgraph
* CreateDate:2011-5-12
* Author:Wilr
* Description:数据库链接
*/
$dbConn=mysql_connect("127.0.0.1","root","root");
if(!$dbConn)
echo '数据库通讯掉败';
mysql_select_db("jpgraph");
mysql_query("set names 'utf8'",$dbConn);
$sql= " SELECT * FROM jpg_temp";
$result=mysql_query($sql,$dbConn);
$rowCount=mysql_num_rows($result);
$datay=array();
$datax=array();
$number=array();
while ($row=mysql_fetch_array($result)){
$datay[]=$row["money"];
$datax[]=$row["year"];
$number[]=$row["number"];
}
//echo each($datay);
//print_r($datay);
mysql_close($dbConn);
?>
//生成图表类
require_once ('jpgraph/jpgraph.php'); //载入根基类
require_once ('jpgraph/jpgraph_bar.php'); //载入柱状图
include_once('db_config.php'); //载入数据处置文件
$graph=new Graph(900,500); //创立一个图表 指定巨细
$graph->SetScale("textlin"); //设置坐标刻度类型
$graph->img->SetMargin(40,180,30,40);//设置统计图边距 左、右、上、下
//$graph->SetMarginColor("lightblue");//设置画布后台色 淡蓝色
//$graph->SetBackgroundImage('stship.jpg',BGIMG_COPY); //设置后台图片
//$graph->img->SetAngle(45); //设置图形在图象中的角度
//设置题目信息
$graph->title->Set('Wilr测试报表'); //设置统计图题目
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,20); //设置题目字体
$graph->title->SetMargin(3);//设置题目的边距
//设置X轴信息
$graph->xaxis->title->Set('(单元:年)'); //题目
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD,10); //题目字体 巨细
$graph->xaxis->title->SetColor('black');//色彩
$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD,10);//X轴刻度字体 巨细
$graph->xaxis->SetColor('black');//X轴刻度色彩
$graph->xaxis->SetTickLabels($datax); //设置X轴标志
$graph->xaxis->SetLabelAngle(0);//设置X轴的显示值的角度;
//设置Y轴的信息
$graph->yaxis->SetFont(FF_SIMSUN,FS_BOLD,10);//题目
$graph->yaxis->SetColor('black');//色彩
$graph->ygrid->SetColor('black@0.9');//X,y穿插表格色彩和通明度 @为水平值
$graph->yaxis->scale->SetGrace(0);//设置Y轴显示值柔韧度(注释有点成绩 呵呵 谅解)
//设置数据
$bplot1 = new BarPlot($datay);
$bplot2 = new BarPlot($number);
//设置柱状图柱色彩和通明度
$bplot1->SetFillColor('orange@0.4');
$bplot2->SetFillColor('brown@0.4');
//设置值显示
$bplot1->value->Show(); //显示值
$bplot1->value->SetFont(FF_SIMSUN,FS_BOLD,10);//显示字体巨细
$bplot1->value->SetAngle(90); //显示角度
$bplot1->value->SetFormat('%0.2f'); //显示格局 0.2f:准确到小属数点后2位
$bplot2->value->Show();
$bplot2->value->SetFont(FF_SIMSUN,FS_BOLD,10);
$bplot2->value->SetAngle(90);
$bplot2->value->SetFormat('%0.0f');
//设置图列标签
$graph->legend->SetFillColor('lightblue@0.9');//设置图列标签后台色彩和通明度
$graph->legend->Pos(0.01,0.12,"right","center");//地位
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL,10);//显示字体 巨细
$bplot1->SetLegend('花费金额(单元:万元)');
$bplot2->SetLegend('人数(单元:万人次)');
//设置每一个柱状图的色彩和暗影通明度
$bplot1->SetShadow('black@0.4');
$bplot2->SetShadow('black@0.4');
//生成图列
$gbarplot = new GroupBarPlot(array($bplot1,$bplot2));
$gbarplot->SetWidth(0.5); //柱状的宽度
$graph->Add($gbarplot);
$graph->Stroke(); //输入图象
?>
附件:
后果图.zip (25 K)
也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧! 做为1门年轻的语言,php一直很努力。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 本文当是我的笔记啦,遇到的问题随时填充 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 写的比较杂,因为我也是个新手,不当至于大家多多指正。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
页:
[1]