本节内容:
php柱状图生成类。
例子:
<?php
/**
* 生成柱状图的类
* edit: www.jb200.com
*/
class histogram_v
{
//数值
var $num;
//低部标签值
var $label;
//柱状图高度, 默认为200, 用户可自定义
var $height=200;
//每条柱的宽度,默认为25, 用户可自定义
var $perwidth=25;
function show()
{
//获取外部数值
$shu=split(",",$this->num);
//获取标签值
$biaoqian=split(",",$this->label);
//颜色, 默认为20种, 如果客户数据超过20种, 则回到第一种, 如此循环.
$color = array('#97bd00','#009900','#cc3300',
'#ffcc00','#3366cc','#33cc33',
'#ff9933','#cccc99','#99cc66',
'#66ff99','#4f6600','#003300',
'#481000','#7d6400','#173064',
'#1a6a1a','#974b00','#78793c',
'#557e27','#009337');
if ($shu=="") die("error id:1");
$shuju=split(",",$shu);
//计算最大值
for($i=0;$i<count($shu);$i++)
{
if(!is_numeric($shu[$i])) die("error id:2");
if($shu[$i]>$zuidashu) $zuidashu=$shu[$i];
}
?>
<table border=0>
<tr valign="bottom"><?php /*一定要设置为低部对齐*/ ?>
<?php
for($i=0,$j=0;$i<count($shu);$i++,$j++)
{
if($j>19){$j=0;}
?>
<td align="center">
<?php
/*在柱状图的顶端输出数值*/
echo $shu[$i];
?>
<table height="<?echo floor(($this->height/$zuidashu)*$shu[$i]);?>" border=0>
<tr>
<td bgcolor="<?php /*柱状颜色*/ echo $color[$j]; ?>" width="<?php /*第条柱的宽度*/ echo $this->perwidth; ?>"></td>
</tr>
</table><font color="#3F7F9F"><?php /*打印低部对应标签*/ echo $biaoqian[$i];?></font>
</td>
<?php } ?>
</tr>
</table>
<?php
} //End function
} // End histogram Class
?>