当前位置: 首页 > news >正文

php结合MySQL的柱状图_jpgraph+php+mysql生成柱状图(含代码)

jpgraph+php+mysql生成柱状图(含代码) 并有详细的解释!

一、首先创建数据库及测试表:

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);

二、mysql.php

//数据库链接文件

$dbConn=mysql_connect("localhost","root","syc");

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);

?>

三、生成图表index.php

date_default_timezone_set("PRC");//添加时间以防报错

//生成图表类

require_once ('jpgraph/jpgraph.php'); //载入基本类

require_once ('jpgraph/jpgraph_bar.php'); //载入柱状图

include_once(‘mysql.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('Syc测试报表'); //设置统计图标题

$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(); //输出图像

?>

四、生成的图表

0818b9ca8b590ca3270a3433284dd417.png

相关文章:

  • 查看有哪些namespace_Linux操作系统中的namespace是个什么鬼
  • zabbix php mysql_Centos7+PHP5.6+MySQL5.7+Zabbix4.0部署
  • 判别式模型python_判别式模型与生成式模型
  • 双鉴探测器是哪两种探测方式结合_报警的基本知识
  • 虚拟机annaconda连接mysql_Python3.5(ANCONDA3)连接MYSQL数据库
  • mysql 存储过程enum 变量初始化_mysql存储过程变量使用-bug记要
  • mysql获取option的value_js:如何获取select选中的值
  • java链表 排序_Java实现单链表的快速排序和归并排序
  • java jar包 资源_java jar包资源下载
  • flash builder java_Flash Builder4.5 + BladeDS + Java 集成实例
  • java 打包成war包后 获取类路径_一个Java项目布署到weblogic里,听说weblogic会把classes目录打成jar包,怎么获取classes里文件的路径...
  • crh寄存器_STM32的寄存器控制SDA_IN()/SDA_OUT()
  • java连接openoffice_Java启动openoffice服务后拒绝连接
  • java一个方法里如何开始线程_Java并发学习第一弹:实现多线程的方法到底有几种?新线程是如何启动的?...
  • java程序设计工程师报名费多少_程序设计工程师技术水平证书(JAVA)考试大纲
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 0基础学习移动端适配
  • 2018一半小结一波
  • JAVA多线程机制解析-volatilesynchronized
  • leetcode388. Longest Absolute File Path
  • leetcode98. Validate Binary Search Tree
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 初识 beanstalkd
  • 给新手的新浪微博 SDK 集成教程【一】
  • 异常机制详解
  • 交换综合实验一
  • #NOIP 2014#Day.2 T3 解方程
  • $forceUpdate()函数
  • (23)Linux的软硬连接
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (三) diretfbrc详解
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (五)c52学习之旅-静态数码管
  • (原)本想说脏话,奈何已放下
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)Windows2003安全设置/维护
  • (转)负载均衡,回话保持,cookie
  • .bat批处理(六):替换字符串中匹配的子串
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net core 6 集成和使用 mongodb
  • .NET Core 中的路径问题
  • .NET 设计模式初探
  • .NET 指南:抽象化实现的基类
  • .net反编译的九款神器
  • /etc/fstab和/etc/mtab的区别
  • /var/log/cvslog 太大
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [2669]2-2 Time类的定义
  • [CC-FNCS]Chef and Churu
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [Docker]五.Docker中Dockerfile详解