Jpgraph使用demo

<?php

require_once(‘jpgraph-4.0.2/src/jpgraph.php‘);

$ac=‘c‘;

if($ac==‘a‘){
/********************条形图************************/
require_once(‘jpgraph-4.0.2/src/jpgraph_bar.php‘);//条形图的类
//创建图表数据
$xdata = array(‘Mousemats‘, ‘Pens‘, ‘T-Shirts‘, ‘Mugs‘);
$ydata = array(35, 43, 15, 10);

/*创建图形对象,设置尺寸和背景颜色*/
//设置图表宽,高,缓存文件名称
$graph = new Graph(500,400,‘auto‘);
//设置边距
$graph->img->SetMargin(40,20,20,40);
//刻度类型,设置比例 (X 文本比例、Y 线比例)
$graph->SetScale(‘textlin‘);
//设置背景颜色
$graph->SetColor(‘white‘);
//设置外边框背景颜色
$graph->SetmarginColor(‘darkgray‘);
//使用背景阴影
$graph->SetShadow();
//设置框架颜色
$graph->SetFrame(true,‘black‘);

/*设置图形标题*/
//标题文本
$graph->title->Set(‘Sales figures for march‘);
//标题颜色
$graph->title->SetColor(‘white‘);
//标题字体
$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);

/*构建x轴*/
//轴标题文本
$graph->xaxis->title->Set(‘Product type‘);
//轴标题颜色
$graph->xaxis->title->SetColor(‘black‘);
//轴标题字体
$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
//设置标志数据(每个数据的标志)
$graph->xaxis->SetTickLabels($xdata);
//轴颜色
$graph->xaxis->SetColor(‘black‘,‘white‘);
//轴字体
$graph->xaxis->SetFont(FF_VERDANA, FS_NORMAL,8);
//隐藏十字叉
$graph->xaxis->HideTicks();

/*构建Y轴*/
//轴标题文本
$graph->yaxis->title->Set(‘Units Sold‘);
//轴标题颜色
$graph->yaxis->title->SetColor(‘black‘);
//轴标题字体
$graph->yaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
//轴颜色
$graph->yaxis->SetColor(‘black‘,‘white‘);
//轴字体
$graph->yaxis->SetFont(FF_VERDANA, FS_NORMAL,8);
//隐藏十字叉
$graph->yaxis->HideTicks();

/*新建BarPlot对象处理图形中的条状绘制*/
//传入数据实例图表
$bplot = new BarPlot($ydata);
//设置条宽度
$bplot->SetWidth(0.75);
//设置条背景颜色
$bplot->SetFillcolor(‘darkgray‘);

/*将条形图对象添加到图形对象*/
$graph->Add($bplot);
//发送到浏览器
$filename = ‘images/‘.time().‘.png‘;  
$graph->Stroke($filename);
}

if($ac==‘b‘){
/********************饼图***********************/
//图表主类
require_once(‘jpgraph-4.0.2/src/jpgraph_pie.php‘);
require_once(‘jpgraph-4.0.2/src/jpgraph_pie3d.php‘);

//创建图表数据
$xdata = array(‘Mousemats‘,‘Pens‘,‘T-Shirts‘,‘Mugs‘);
$ydata = array(35,43,15,10);

/*创建图形对象*/
//设置图表宽,高,缓存文件名称
$graph = new PieGraph(400,200,‘auto‘);
//设置背景颜色
$graph->SetMarginColor(‘white‘);
//使用背景投影
$graph->SetShadow();
//设置框架颜色
$graph->SetFrame(true,‘black‘);

/*设置图形标题*/
$graph->title->Set(‘March Sales‘);
//标题颜色
$graph->title->SetColor(‘black‘);
//标题字体
$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);

/*创建图例标识饼图每部分代表的含义*/
//图例文本颜色
$graph->legend->SetColor(‘black‘);
//图例背景颜色
$graph->legend->SetFillColor(‘gray‘);
//图例方位
$graph->legend->Pos(0.02,0.86);

/*创建三维饼图对象*/
//传入Ydata实例它
$pie = new PiePlot3d($ydata);
//把Xdata传入图例中
$pie->SetLegends($xdata);
//设置颜色主题 (earth|pastel|sand|water)
$pie->SetTheme(‘earth‘);
//设置相对X轴的中心
$pie->SetCenter(0.36);
//设置饼图的半径(单位px)
$pie->SetSize(100);
//设置标题的角度
$pie->SetAngle(30);

/*突出显示两个扇形区*/
//分开成多少片
$pie->ExplodeSlice(2);
//另一个分开成多少片
$pie->ExplodeSlice(3);

/*在图形上每个部分旁显示标识该部分的百分比*/
//设置字体
$pie->value->SetFont(FF_VERDANA,FS_NORMAL,10);
//字体颜色
$pie->value->SetColor(‘black‘);

/*将饼图对象添加到图形对象并发送到浏览器*/
$graph->Add($pie);
$filename = ‘images/‘.time().‘.png‘;  
$graph->Stroke($filename);//输出图像
//可以输入文件名创建文件而不输出
//例:$graph->Stroke(‘humble_pie.png‘);
}

if($ac==‘c‘){
/****************折线图********************/
require_once(‘jpgraph-4.0.2/src/jpgraph_line.php‘); //LinePlot 类  
$aAxisType = ‘intlin‘; //第一个int是X轴类型第2个lin是Y轴类型  
$yScaleMin = 0; //Y轴最小值, 如果不需要设置,可以为空,或者NULL,下同  
$yScaleMax = 11; //Y轴最大值  
$xScaleMin = 1; //X轴最大值  
$xScaleMax = 24; //X轴最大值  
  
$unitType = ‘月份‘;  
  
  $chartDataTmpArr = array(‘1‘ => ‘1‘, ‘2‘ => ‘0‘, ‘3‘ => ‘4‘, ‘4‘ => ‘5‘, ‘5‘ => ‘7‘, ‘6‘ => ‘8‘, ‘7‘ => ‘4‘, ‘8‘ => ‘6‘, ‘9‘ => ‘8‘, ‘10‘ => ‘7‘, ‘11‘ => ‘4‘, ‘12‘ => ‘5‘, ‘13‘ => ‘4‘, ‘14‘ => ‘6‘, ‘15‘ => ‘4‘, ‘16‘ => ‘2‘, ‘17‘ => ‘2‘, ‘18‘ => ‘2‘, ‘19‘ => ‘2‘, ‘20‘ => ‘7‘, ‘21‘ => ‘6‘, ‘22‘ => ‘1‘, ‘23‘ => ‘4‘, ‘24‘ => ‘4‘);  
  
$chartDataTmpArr2 = array(‘1‘ => ‘2‘, ‘2‘ => ‘0‘, ‘3‘ => ‘2‘, ‘4‘ => ‘2‘, ‘5‘ => ‘8‘, ‘6‘ => ‘9‘, ‘7‘ => ‘5‘, ‘8‘ => ‘7‘, ‘9‘ => ‘9‘, ‘10‘ => ‘7‘, ‘11‘ => ‘4‘, ‘12‘ => ‘7‘, ‘13‘ => ‘2‘, ‘14‘ => ‘4‘, ‘15‘ => ‘5‘, ‘16‘ => ‘6‘, ‘17‘ => ‘0‘, ‘18‘ => ‘3‘, ‘19‘ => ‘6‘, ‘20‘ => ‘5‘, ‘21‘ => ‘8‘, ‘22‘ => ‘9‘, ‘23‘ => ‘4‘, ‘24‘ => ‘4‘);  
$graph = new Graph($width = 780 , $height = 400); //创建新的Graph对象  
$graph->SetScale($aAxisType, $yScaleMin, $yScaleMax, $xScaleMin, $xScaleMax); //设置刻度模式SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1)  
  
$graph->img->SetMargin(40, 20, 50, 50) ; //设置图表边界  
$title = date("Y-m-d H:i:s")."统计图";  
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置图表标题的字体类型  
$graph->title->Set(iconv("UTF-8","GB2312//IGNORE",$title));  
$graph->title->SetMargin (20);  
  
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);  
$graph->xaxis->title->Set(iconv("UTF-8","GB2312//IGNORE",$unitType));  
$graph->xaxis->title->SetMargin(14);  
  
$graph->legend->SetLineWeight(2); //设置图例文字的字体   
  
$lineplot = new LinePlot($chartDataTmpArr); //创建要画的一地条曲线的对象  
$lineplot->SetWeight(2); //曲线的线宽  

$lineplot->SetLegend(iconv("UTF-8","GB2312//IGNORE","进入"));//设置图例文字  
$graph->legend->Pos( 0.025, 0.08, "right","center" ); //图例文字框的位置 0.025,0.08 是以右上角为基准的,0.025是距左右距离,0.08是上下距离。
$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);
$graph->legend->SetLayout(‘1‘); //如果有两条曲线,他们的图例文字并排放置。  
$graph->legend->SetFrameWeight(0); //图例文字外框边框border设置为0  
$graph->legend->SetFillColor(‘#C8C8C8‘); //图例文字框内的填充颜色  
$graph->legend->SetShadow(‘#C8C8C8‘, 0); //设置图例文字框的阴影部分颜色和border  
$lineplot->SetColor("orange"); //设置曲线颜色  
$graph->Add($lineplot); //在统计图上绘制曲线  
      
$lineplot2 = new LinePlot($chartDataTmpArr2); //创建一条新的曲线对象  
$lineplot2->SetLegend(iconv("UTF-8","GB2312//IGNORE","出去"));  
$lineplot2->SetWeight(2);  
$lineplot2->SetColor("blue");
$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);
$graph->Add($lineplot2);  
  
$filename = ‘images/‘.time().‘.png‘;  
$graph->Stroke($filename);  
}

引入了文件.
    然后写数据.

[php] view plain copy print?

  1. $ydata = array(11,3,8,12,5,1,9,13,5,7);

设置图表大小.

[php] view plain copy print?

  1. $graph = new Graph(350,250);

刻度类型:

[php] view plain copy print?

  1. $graph->SetScale(‘textlin‘);

比如强制如此设置.

[php] view plain copy print?

  1. $graph->SetScale(‘textlin‘,0,200);

注入y轴数据,设置颜色.

[php] view plain copy print?

  1. $lineplot=new LinePlot($ydata);
  2. $lineplot->SetColor(‘blue‘);

设置两条也是一个道理的.

[php] view plain copy print?

  1. $lineplot=new LinePlot($ydata);
  2. $lineplot->SetColor(‘blue‘);
  3. $slineplot=new LinePlot($sydata);
  4. $slineplot->SetColor(‘red‘);
  5. $graph->Add($lineplot);
  6. $graph->Add($slineplot);

设置图例:

[php] view plain copy print?

  1. $lineplot->SetLegend(‘Label 1‘);
  2. $slineplot->SetLegend(‘Label 2‘);

解决中文乱码

取前篇的代码片断如下

//设置图表的标题字体、大小
$graph->title->Set("Accumulated&nbsp;bar&nbsp;plots");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");

//和上面标题对应,设置标题的字体和大小
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

把它改为

//设置图表的标题字体、大小
$graph->title->Set(iconv("UTF-8","GB2312//IGNORE","网志博客信息统计表"));
$graph->xaxis->title->Set(iconv("UTF-8","GB2312//IGNORE","X-标题"));
$graph->yaxis->title->Set(iconv("UTF-8","GB2312//IGNORE","Y-标题"));

//和上面标题对应,设置标题的字体和大小
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

使用php函数据中文由UTF-8转为GB2312,记住由于iconv本身的一个bug,iconv在转换字符"—"到gb2312时会出错,所以在需要转成的编码后加上 "//IGNORE" 。

FF_SIMSUN表示中文简体,对应的字体文件是simsun.ttc,虽然FF_CHINESE和FF_BIG5也表示中文但是它们对应的字体文件是不同的,所以不要弄错。

当然了,我这里只介绍了一种方法,还有一种就是修改源码,但不推荐。因为我觉得改动源码可能会给其它地方带来意想不到的麻烦。

使用JpGraph,要知道其版本、运行服务器以及操作系统的息息,不能张冠李戴,否则麻烦多多。

生成验证码

require_once(‘jpgraph-4.0.2/src/jpgraph_antispam.php‘);
$spam = new AntiSpam();
$chars = $spam->Rand(4);
$spam->Stroke();
$spam->Set(‘my_string‘);//可以自行指定字符串
时间: 2024-10-06 07:10:35

Jpgraph使用demo的相关文章

PHP制作图表 JpGraph

JpGraph 是PHP图表库,以下是如何操作:1.JpGraph 下载地址:http://www.html580.com/11710/demo  2.在PHP中引入相关JpGraph的文件 include ("jpgraph-4.0.2/src/jpgraph.php"); include ("jpgraph-4.0.2/src/jpgraph_bar.php"); include ("jpgraph-4.0.2/src/jpgraph_line.php

微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

一.首先先确定H5支付权限已经申请!(需要微信h5支付demo的可以加 851 488 243 备注:h5支付) 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB 3.统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名"mweb_url"),商户通过mweb_url调起微信支付中间页 4.中间页进行H5权限的校验,安全性检查(此处常见错误请见下文) 5.如支付成

Maven+SpringMVC+Freemarker入门Demo

1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程. 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0&q

Spring Security入门Demo

一.spring Security简介 SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架.它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权.在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术. 二.建立工程 参考http://blog.csdn.net/haishu_zheng/article/details/51490

沫沫金Echarts移动端demo

鄙视百度!!! 官网给的Demo支持自动大小,确不给完整的源码XXX 自己动手,丰衣足食 http://echarts.baidu.com/demo.html#bar-tick-align 用最基本的柱状图官网代码 简单两步,实现移动端自适应大小 //1.下载Echarts <script src="dep/Echarts/echarts-all-3.js"></script> //2.chart容器宽度自适应 <!-- 为ECharts准备一个具备大小(

Flask---使用Bootstrap新建第一个demo

Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Bootstrap开源框架,Bootstrap是客户端框架,后台当然就是Flask了. 服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JS文件的html响应,并且在html.css和js代码中实例化需要的组件,这些操作的最理想的执行环境就是模板 关于模板的介绍及其实现原理:https://kb.

struts2和hibernate整合的小Demo

jar包下载地址 创建一个web项目. 导入jar包 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+

爬虫2:html页面+beautifulsoap模块+post方式+demo

爬取html页面,有时需要设置参数post方式请求,生成json,保存文件中. 1)引入模块 import requests from bs4 import BeautifulSoup url_ = 'http://www.c.....................' 2)设置参数 datas = { 'yyyy':'2014', 'mm':'-12-31', 'cwzb':"incomestatements", 'button2':"%CC%E1%BD%BB",