jpgraph的安装与配置
Jpgraph这个强大的绘图组件能根据用户的需要绘制任意图形。只需要提供数据,就能自动调用绘图函数的过程,把处理的数据输入自动绘制。Jpgraph提供了多种创建各种统计图,包括折线图、柱形图和饼形图等。Jpgraph是一个完全使用php语言编写的类库,并可以应用任何php环境中。
1、jpgraph的安装
Jpgraph可以从其官方网站下载。注意:jpgraph支持php4.3.1以上和PHP5两种版本的图形库,选择合适的jpgraph下载。可以下载这样的版本使用:jpgraph-2.3
其安装步骤非常简单:
a) 将压缩包下的全部文件解压到一个文件夹中。如f:\appserv\www\jpgraph
b) 打开PHP的安装目录,编辑php.ini文件并修改其中的include_path参数,在其后增加前面的文件夹名,include_path=”.f:\appserv\www\jpgraph”
c) 重新启动apache服务器即可生效。
2、jpgraph的配置
Jpgraph提供了一个专门用于配置jpgraph类库的文件jpg-config.inc.php在使用jpgraph前,可以通过修改文本文件来完成jpgraph的配置。
jpg-config.inc.php文件的配置需要修改以下两项:
a) 支持中文的配置
Jpgraph支持的中文标准字体可以通过修改chinese_ttf_font的设置来完成。
Define(‘chinese_ttf_font’,’bkai00mp.ttf’)
b) 默认图片格式的配置
根据当前PHP环境中支持的图片格式来设置默认的生成图片的格式。Jpgraph默认图片格式的配置可以通过修改DEFAULT_GFORMAT的设置来完成。默认值auto表示jpgraph将依次按照png,gif和jpeg的顺序来检索系统支持的图片格式。
DEFINE(“DEFAULT_GFORMAT”,”auto”)
注意:如果用户使用的为jpgraph2.3版本,那么不需要重新进行配置。
将下载的得到的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坐标图
<?php
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() //输出图像
?>
例6.
index.html
<html>
<head>
<title>CDN流量查询系统统计</title>
<meta http-equiv="Content-Type" content="text/html charset=gb2312">
<mce:style type="text/css"><!--
.style1 {
font-size: 16px
font-weight: bold
}
--></mce:style><style type="text/css" mce_bogus="1">.style1 {
font-size: 16px
font-weight: bold
}</style>
</head>
<body>
<form name="form1" method="get" action="result.php">
<p align="center" class="style1"> CDN流量查询系统统计</p>
<table width="300" border="1" align="center" cellpadding="3" cellspacing="3">
<tr>
<td width="85"><strong>查询年份</strong></td>
<td width="188"><select name="acct_yr" id="acct_yr">
<option value="2009" selected>2008</option>
<option value="2009" selected>2009</option>
</select></td>
</tr>
<tr>
<td><strong>起始月份</strong></td>
<td><select name="start_mth" id="start_mth">
<option selected>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select></td>
</tr>
<tr>
<td><strong>终止月份</strong></td>
<td><select name="end_mth" id="end_mth">
<option >01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option selected >12</option>
</select></td>
</tr>
<tr>
<td><strong>统计图类别</strong></td>
<td><select name="graph" id="graph">
<option value="1" selected>线型图</option>
<option value="2">柱形图</option>
<option value="3">饼图</option>
<option value="4">3D饼图</option>
</select></td>
</tr>
</table>
<p align="center">
<input type="submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>
</body>
</html>
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 = newhttps://www.guwengl.com#data)
$pieplot->SetLegends($gDateLocale->GetShortMonth()) //设置图例
$graph->Add($pieplot)
break
default:
echo "graph参数错误"
exit
}
$graph->Stroke()
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)