柔情似水 发表于 2015-2-3 23:30:40

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函数基本还是不懂吧!

再见西城 发表于 2015-2-4 00:07:40

做为1门年轻的语言,php一直很努力。

冷月葬花魂 发表于 2015-2-8 20:25:13

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

深爱那片海 发表于 2015-2-26 03:47:30

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

透明 发表于 2015-3-8 11:10:11

本文当是我的笔记啦,遇到的问题随时填充

飘灵儿 发表于 2015-3-10 22:08:05

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

小魔女 发表于 2015-3-14 14:52:52

写的比较杂,因为我也是个新手,不当至于大家多多指正。

灵魂腐蚀 发表于 2015-3-15 14:38:11

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

因胸联盟 发表于 2015-3-15 21:56:33

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

金色的骷髅 发表于 2015-3-22 05:10:34

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

再现理想 发表于 2015-3-25 09:32:40

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

海妖 发表于 2015-3-27 00:08:20

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

分手快乐 发表于 2015-4-1 17:36:17

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

变相怪杰 发表于 2015-4-28 12:26:44

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

谁可相欹 发表于 2015-5-1 20:10:42

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

小女巫 发表于 2015-6-7 22:26:50

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

蒙在股里 发表于 2015-6-9 11:50:07

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

简单生活 发表于 2015-6-22 22:41:38

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

若相依 发表于 2015-7-7 10:42:54

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

莫相离 发表于 2015-7-8 04:27:00

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
页: [1]
查看完整版本: PHP教程之jpgraph+php+mysql生成柱状图(含附件)