php jpgraph,jpgraph 实例文档

下载在官方网站http://www.aditus.nu/jpgraph/下载jpgraph,其中1.X系列是用于PHP4的,2.X系列是用于PHP5的。安装将下载的得到的jpgraph压缩文件解压至相应的路径。

配置首先需要注意的是:要想适用jpgraph,你的PHP必须开启了GD2扩展。在jpgraph.php中有以下这样一段代码是设置字体文件路径的if (!defined('TTF_DIR')) {

if (strstr( PHP_OS, 'WIN') ) {

$sroot = getenv('SystemRoot');

if( empty($sroot) ) {

$t = new ErrMsgText();

$msg = $t->Get(12,$file,$lineno);

die($msg);

}

else {

define('TTF_DIR', $sroot.'/fonts/');

}

} else {

define('TTF_DIR','/usr/share/fonts/truetype/');ç(我的作法是将windows下的fonts文件夹下的字体全部COPY到/usr/local/fonts/truetype)

}

}

要支持中文需要用到simhei.ttf和simsun.ttc这两个字体,在使用中文的时候需要使用SetFont(FF_SIMSUN,FS_BOLD)设置字体。如果你的文件编码为utf-8,修改方法如下:代码:方法一,在程序中修改$title="流量图";

$title = iconv("UTF-8", "gb2312", $title);

$graph->title->Set($title);方法二,修改源文件jpgraph_ttf.inc.php在第99-106行,改成下面这样子elseif( $aFF === FF_SIMSUN ) {

// Do Chinese conversion

/*

if( $this->g2312 == null ) {

include_once 'jpgraph_gb2312.php' ;

$this->g2312 = new GB2312toUTF8();

}

return

$this->g2312->gb2utf8($aTxt);

*/

return $aTxt;

}

jpgraph默认显示汉字时是把汉字编码认为gb2312,转化为utf-8以后再显示。这样的话,如果你的文件编码是gb2312,SetFont方法的第一个参数为FF_SIMSUN即可。如果你是utf-8编码你还需要先把汉字编码转化为gb2312,这样你的汉字才可以正常显示。使用可以参照jpgraph-2.3.4\src\Examples中的例子。下面是一些常用的:$graph->title->Set(‘设置图表的标题’);

$graph->xaxis->title->Set("设置X轴的标题");

$graph->yaxis->title->Set("设置Y轴的标题");

//设置字体 如果是中文,第一个参数一般设置为FF_SIMSUN

SetFont(FF_SIMSUN,FS_BOLD,14);

//如设置图表标题的字体$graph->title->SetFont(FF_SIMSUN,FS_BOLD,14);

//设置颜色SetColor('red');

Example:

例1. php Jpgraph绘制简单的X-Y坐标图

include ("../jpgraph.php");

include ("../jpgraph_line.php");

//将要用于图表创建的数据存放在数组中

$data =

array(19,23,34,38,45,67,71,78,85,90,96,145);

$graph = new Graph(500,300);//创建新的Graph对象

$graph->SetScale("textlin");//设置刻度样式

$graph->img->SetMargin(30,30,80,30);//设置图表边界

$graph->title->Set("CDN Traffic

Total");//设置图表标题

$graph->title->SetColor("blue");

$graph->title->SetMargin(20);

// Create the linear plot

$lineplot=new LinePlot($data);//创建新的LinePlot对象

$lineplot->SetLegend("Line(Mbits)");//设置图例文字

$lineplot->SetColor("red");//设置曲线的颜色

// Add the plot to the graph

$graph->Add($lineplot);//在统计图上绘制曲线

// Display the graph

$graph->Stroke();//输出图像

?>

dd23fe81281a252c8faf6a7df298d735.png

例2. php Jpgraph绘制复杂的X-Y坐标图

include ("../jpgraph.php");

include ("../jpgraph_line.php");

$data1 =

array(523,634,371,278,685,587,490,256,398,545,367,577);//第一条曲线的数组

$data2 =

array(19,23,34,38,45,67,71,78,85,87,90,96);//第二条曲线的数组

$graph = new Graph(500,300,auto);//创建新的Graph对象

$graph->SetScale("textlin");

$graph->SetShadow();//设置图像的阴影样式

$graph->img->SetMargin(60,30,30,70);//设置图像边距

$graph->title->Set("CDN流量图");//设置图像标题

$graph->title->SetMargin(10);

$lineplot1=new LinePlot($data1);//创建设置两条曲线对象

$lineplot2=new LinePlot($data2);

$lineplot1->value->Show();

$lineplot1->value->SetColor("black");

$graph->Add($lineplot1);//将曲线放置到图像上

$graph->Add($lineplot2);

$graph->xaxis->title->Set("月份");//设置坐标轴名称

$graph->yaxis->title->Set("流 量(Gbits)");

$graph->xaxis->title->SetMargin(10);

$graph->yaxis->title->SetMargin(10);

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体

$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());

$lineplot1->SetColor("red");//设置颜色

$lineplot2->SetColor("blue");

$lineplot1->SetLegend("Max");//设置图例名称

$lineplot2->SetLegend("Min");

$graph->legend->SetLayout(LEGEND_HOR);//设置图例样式和位置

$graph->legend->Pos(0.5,0.96,"center","bottom");

$graph->Stroke();//输出图像

?>

8bb98321c6393dd4c992a76cc1575fd2.png

例3. php Jpgraph绘制柱形图

include

("../jpgraph.php");

include

("../jpgraph_bar.php");

$data =

array(19,23,34,38,45,67,71,78,85,87,96,145);//定义数组

$ydata =

array("一","二","三","四","五","六","七","八","九","十","十一","十二");

$graph = new

Graph(500,300);//创建新的Graph对象

$graph->SetScale("textlin");

$graph->SetShadow();//设置阴影

$graph->img->SetMargin(40,30,40,50);//设置边距

$barplot =

new BarPlot($data);//创建BarPlot对象

$barplot->SetFillColor('blue');//设置颜色

$barplot->value->Show();//设置显示数字

$graph->Add($barplot);//将柱形图添加到图像中

$graph->title->Set("CDN流量图");//设置标题和X-Y轴标题

$graph->title->SetColor("red");

$graph->title->SetMargin(10);

$graph->xaxis->title->Set("月份");

$graph->xaxis->title->SetMargin(5);

$graph->xaxis->SetTickLabels($ydata);

$graph->yaxis->title->Set("流 量(Mbits)");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体

$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD);

$graph->Stroke();

?>

36a4ef0865baabe16096960c61a6f3df.png

例4. php Jpgraph绘制饼图

include ("../jpgraph.php");

include ("../jpgraph_pie.php");

$data =

array(19,23,34,38,45,67,71,78,85,87,90,96);

$lable_data = range(1,12);

$graph = new PieGraph(400,300);

$graph->SetShadow();

$graph->title->Set("CDN流量比例");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

$pieplot = new PiePlot($data);

$pieplot->SetLegends($lable_data);

$pieplot->SetCenter(0.4);

$graph->Add($pieplot);

$graph->Stroke();

?>

c9b50dd4bcad0ea97889cb4881630874.png

例5. php Jpgraph绘制3D饼图

include ("../jpgraph.php");

include ("../jpgraph_pie.php");

include ("../jpgraph_pie3d.php");

$data = array(19,23,34,38,45,67,71,78,85,87,90,96);

$graph = new PieGraph(550,400);

$graph->SetShadow();

$graph->title->Set("CDN流量比例");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

$pieplot = new PiePlot3D($data);//创建PiePlot3D对象

$pieplot->SetCenter(0.4);//设

置饼图中心的位置

$pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例

$graph->Add($pieplot);

$graph->Stroke();

?>

1caea3121b359bbd4bdca7872de2294b.png

例6.

index.html

CDN流量查询系统统计

http-equiv="Content-Type" content="text/html;

charset=gb2312">

.style1 {

font-size:

16px;

font-weight:

bold;

}

-->

method="get" action="result.php">

CDN流量查询系统统计

align="center" cellpadding="3"

cellspacing="3">

查询年份

width="188">

id="acct_yr">

selected>2008

selected>2009

起始月份

id="start_mth">

01

02

03

04

05

06

07

08

09

10

11

12

终止月份

01

02

03

04

05

06

07

08

09

10

11

12

统计图类别

线型图

柱形图

饼图

3D饼图

value="Reset">

3e0f3042f80826ae24005af6672b2ba5.png

result.php

include ("../jpgraph.php");

include ("../jpgraph_line.php");

include ("../jpgraph_bar.php");

include ("../jpgraph_pie.php");

include ("../jpgraph_pie3d.php");

$conn =

mysql_connect("localhost", "root",

"woxiangnileyali");//连接数据库

$acct_yr = $_GET['acct_yr'];//获取年份

$start_mth = $_GET['start_mth'];//获取超始月份

$end_mth = $_GET['end_mth'];//获取结束月份

$choose = $_GET['graph'];//获取图形类型

mysql_select_db("test", $conn);//执行SQL,获得销量值

$query_rs_prod = "SELECT acct_mth,

amount FROM traffic WHERE acct_yr = '$acct_yr' and acct_mth between

'$start_mth' and '$end_mth'";

$rs_prod = mysql_query($query_rs_prod,

$conn) or die(mysql_error());

$row_rs_prod = mysql_fetch_assoc($rs_prod);

$totalRows_rs_prod = mysql_num_rows($rs_prod);

$data = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0);//初始化数组

do//循环设置各月份数值

{

$i

= (int)$row_rs_prod['acct_mth']-1;

$data[$i]

= $row_rs_prod['amount'];

} while($row_rs_prod =

mysql_fetch_assoc($rs_prod));

switch($choose)

{

case

1:

$graph

= new Graph(400,300);//创建新的Graph对象

$graph->SetScale("textlin");//设置刻度样式

$graph->img->SetMargin(30,30,80,30);//设置图表边界

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体

$graph->title->Set("CDN流量查询");//设置图表标题

$lineplot=new

LinePlot($data);

$lineplot->SetLegend("Line");

$lineplot->SetColor("red");

$graph->Add($lineplot);

break;

case

2:

$graph

= new Graph(400,300);

$graph->SetScale("textlin");

$graph->SetShadow();

$graph->img->SetMargin(40,30,20,40);

$barplot

= new BarPlot($data);//创建BarPlot对象

$barplot->SetFillColor('blue');//设置颜色

$barplot->value->Show();//设置显示数字

$graph->Add($barplot);//将柱形图添加到图像中

$graph->title->Set("CDN流量查询");//设置标题和X-Y轴标题

$graph->xaxis->title->Set("月份");

$graph->yaxis->title->Set("流 量(Gbits)");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体

$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);

break;

case

3:

$graph

= new PieGraph(400,300);

$graph->SetShadow();

$graph->title->Set("CDN流量查询");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

$pieplot

= new PiePlot($data);

$pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例

$graph->Add($pieplot);

break;

case

4:

$graph

= new PieGraph(400,300);

$graph->SetShadow();

$graph->title->Set("CDN流量查询");

$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

$pieplot

= new PiePlot3D($data);//创建PiePlot3D对象

$pieplot->SetCenter(0.4);//设置饼图中心的位置

$pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例

$graph->Add($pieplot);

break;

default:

echo

"graph参数错误";

exit;

}

$graph->Stroke();

?>

f6aba775ea968e61a7cd772df5e91500.png

71781a72fdf385ab9f570c646dcde26d.png

ba1d3d142db3132e45f3fb77ed0e2917.png

adcdc81bfcbd84254ff670208e4b13dc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值