JpGraph折线图功能实现过程

公司最近要求开发网站点击量统计的功能,使用折线图显示出来。通过查阅资料发现jpgraph是很方便、强大的制作图表工具。

下载地址:http://jpgraph.net/

1、先要保证PHP打开了Gd2的扩展:

打开PHP.ini,定位到extension=php_gd2.dll,把前面的分号删掉。

2、如果出现以下错误:

strtotime(): It is not safe to rely on the system’s timezone settings

请不要慌张,打开php.ini文件输入以下内容:

date.timezone = “Asia/Shanghai”

重启apache即可。

步骤:

一、把下载的jpgraph包放到自己的项目中

二、折线图代码读取数据库

<?php /\*\* \* Created by PhpStorm. \* User: liang \* Date: 2017/6/5 \* Time: 14:23 \*/ $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "\*\*\*\*\*\*"; // 创建连接 $conn = mysqli\_connect($servername, $username, $password,$dbname); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli\_connect\_error()); } $title = $\_REQUEST\['url'\]; $sql = "select \*,count(\*) as hit, FROM\_UNIXTIME(addtime,'%Y-%m-%d') as e from cnmstl\_artmodule\_hits where FROM\_UNIXTIME(addtime) >= date\_sub(curdate(), INTERVAL 7 DAY) and title = '$title' group by e"; //获取某个模块最近7天的点击量 $result = $conn->query($sql); while($row = $result->fetch\_assoc()) { $value = $row\['hit'\]; $value\_y\[\]=$value; $value\_x\[\] = $row\['e'\];//x轴坐标名称 // print\_r($value); } $conn->close(); \------------------------------------------------------------------------------------------------- 折线图类 <?php include ("jpgraph.php"); include ("jpgraph\_line.php"); //将要用于图表创建的数据存放在数组中 //$data = array(19,23,34,38,45,67,71,78,85,90,96,145); //print\_r("$value\_y"); $data = $value\_y; $graph = new Graph(500,300); //创建新的Graph对象 $graph->SetScale("textlin"); //设置刻度样式 $graph->img->SetMargin(30,30,80,30); //设置图表边界 $graph->title->Set("XAZX Traffic Total"); //设置图表标题 $graph->title->SetColor("blue"); $graph->title->SetMargin(20); // Create the linear plot $lineplot=new LinePlot($data); // 创建新的LinePlot对象 $lineplot->SetLegend("Line(hits)"); //设置图例文字 $lineplot->SetColor("red"); // 设置曲线的颜色 //设置x、y轴名称 //$x = array('jan','feb','mar','asdfa','asdfa'); //$y = array(1,3,4,5,6,7); $x = $value\_x; $graph->xaxis->SetTickLabels($x); //$graph->xaxis->SetFont(FF\_SIMSUN,FS\_BOLD); //$graph->yaxis->SetTickLabels($y);//经过测试y轴的无效 //$graph->yaxis->SetFont(FF\_SIMSUN,FS\_BOLD); // Add the plot to the graph $graph->Add($lineplot); //在统计图上绘制曲线 // Display the graph $graph->Stroke(); //输出图像 三、效果 ![](https://static.oschina.net/uploads/img/201706/16165237_l6cE.jpg)
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )