All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C++封装与访问控制[二.二]
C#教程:Windows服务概述
引入ASP.NET,Web部件连接_[Asp.Net教程]
SQL,Server中读取XML文件的简单做法_[SQL,Server教程]
对标题中特殊字符格式化,以便能换行显示_[Asp.Net教程]
理解C#,3.0新特性之Extension方法浅议_.net资料_编程技术
asp.net程序中最常用的三十三种编程代码_[Asp.Net教程]
SQL,Server,7.0,入门(八)_mssql学习_编程技术
C#过滤所有HTML代码的函数_[Asp.Net教程]
asp.net2.0对Repeater数据控件进行绑定
Reading number is top 10 pictures
Absolutely shocked. National geographic 50 animal photographys9
BingBingFan apple dew point photo gallery5
Flow chart of breast implants
壮丽的云彩1
西游四格漫画(五)
Fierce chengdu woman, street rape man
网络游戏与脑残
Absolutely shocked. National geographic 50 animal photographys6
西班牙山村小景4
这才叫绝色美女2
Download software ranking
Tram sex maniac 2 (H) rar bag5
Boxer vs Yellow2
Wild things 2
尖东毒玫瑰B
Rio big adventure
都市狐狸姑娘传
VC++6.0简体中文版
Tram sex maniac 2 (H) rar bag15
美女写真1
Sora aoi, the nurse, uniform ,nursing assistant
归海一刀 published in(发表于) 2014/2/10 6:46:27 Edit(编辑)
PHP一生成柱状图、横柱图、折线图的类_[PHP教程]

PHP一生成柱状图、横柱图、折线图的类_[PHP教程]

PHP一生成柱状图、横柱图、折线图的类_[PHP教程]


以下是引用片段:

/**
* 文件:cal_image.class.php
* 功能:产生柱状、折线图、横柱图类
* 作者:yemaosheng.com
*/


Class ImageReport
{
/* 图片数属性 */
var X; //图片大小X轴
var Y; //图片大小Y轴
var R; //背影色R值
var G; //背影色G值
var B; //背影色B值
var TRANSPARENT; //是否透明1或0
var IMAGE; //图片对像
/* 附加属性 */
var ARRAYSPLIT; //指定用于分隔数值的符号
var ITEMARRAY; //数值
var REPORTTYPE; //图表类型,1为竖柱形2为横柱形3为折线形
var BORDER; //距离
/* 字体属性*/
var FONTSIZE; //字体大小
var FONTCOLOR; //字体颜色

/* 设置图片 */
function setImage(SizeX,SizeY,R,G,B,Transparent)
{
this->X=SizeX;
this->Y=SizeY;
this->R=R;
this->G=G;
this->B=B;
this->TRANSPARENT=Transparent;
}


/* 设置获取数字 */
function setItem(ArraySplit,ItemArray,ReportType,Border)
{
this->ARRAYSPLIT=ArraySplit;
this->ITEMARRAY=ItemArray;
this->REPORTTYPE=ReportType;
this->BORDER=Border;
}

/* 设置字体 */
function setFont(FontSize)
{
this->FONTSIZE=FontSize;
}


/* 主体 */
function PrintReport()
{
Header( "Content-type: image/gif");
//建立画布大小
this->IMAGE=ImageCreate(this->X,this->Y);
//设定画布背景色
background=ImageColorAllocate(this->IMAGE,this->R,this->G,this->B);
if(this->TRANSPARENT=="1")
{
//背影透明
Imagecolortransparent(this->IMAGE,background);
}
else
{
//如不要透明时可填充背景色
ImageFilledRectangle(this->IMAGE,0,0,this->X,this->Y,background);
}
//参数字体文小及颜色
this->FONTCOLOR=ImageColorAllocate(this->IMAGE,255-this->R,255-this->G,255-this->B);
Switch (this->REPORTTYPE)
{
case "0":
break;
case "1":
this->imageColumnS();
break;
case "2":
this->imageColumnH();
break;
case "3":
this->imageLine();
break;
}
this->printXY();
this->printAll();
}


/* 打印XY坐标轴 */
function printXY()
{
//画XY坐标轴*/
color=ImageColorAllocate(this->IMAGE,255-this->R,255-this->G,255-this->B);
xx=this->X/10;
yy=this->Y-this->Y/10;
ImageLine(this->IMAGE,this->BORDER,this->BORDER,this->BORDER,this->Y-this->BORDER,color);//X轴
ImageLine(this->IMAGE,this->BORDER,this->Y-this->BORDER,this->X-this->BORDER,this->Y-this->BORDER,color);//y轴
//Y轴上刻度
rulerY=this->Y-this->BORDER;
while(rulerY>this->BORDER*2)
{
rulerY=rulerY-this->BORDER;
ImageLine(this->IMAGE,this->BORDER,rulerY,this->BORDER-2,rulerY,color);
}
//X轴上刻度
rulerX=rulerX+this->BORDER;
while(rulerX<(this->X-this->BORDER*2))
{
rulerX=rulerX+this->BORDER;
//ImageLine(this->IMAGE,this->BORDER,10,this->BORDER+10,10,color);
ImageLine(this->IMAGE,rulerX,this->Y-this->BORDER,rulerX,this->Y-this->BORDER+2,color);
}
}


/* 竖柱形图 */
function imageColumnS()
{
item_array=Split(this->ARRAYSPLIT,this->ITEMARRAY);
num=Count(item_array);
item_max=0;
for (i=0;i {
item_max=Max(item_max,item_array[i]);
}
xx=this->BORDER*2;
//画柱形图
for (i=0;i srand((double)microtime()*1000000);
if(this->R!=255 && this->G!=255 && this->B!=255)
{
R=Rand(this->R,200);
G=Rand(this->G,200);
B=Rand(this->B,200);
}
else
{
R=Rand(50,200);
G=Rand(50,200);
B=Rand(50,200);
}
color=ImageColorAllocate(this->IMAGE,R,G,B);
//柱形高度
height=(this->Y-this->BORDER)-(this->Y-this->BORDER*2)*(item_array[i]/item_max);
ImageFilledRectangle(this->IMAGE,xx,height,xx+this->BORDER,this->Y-this->BORDER,color);
ImageString(this->IMAGE,this->FONTSIZE,xx,height-this->BORDER,item_array[i],this->FONTCOLOR);
//用于间隔
xx=xx+this->BORDER*2;
}
}


/* 横柱形图 */
function imageColumnH()
{
item_array=Split(this->ARRAYSPLIT,this->ITEMARRAY);
num=Count(item_array);
item_max=0;
for (i=0;i {
item_max=Max(item_max,item_array[i]);
}
yy=this->Y-this->BORDER*2;
//画柱形图
for (i=0;i {
srand((double)microtime()*1000000);
if(this->R!=255 && this->G!=255 && this->B!=255)
{
R=Rand(this->R,200);
G=Rand(this->G,200);
B=Rand(this->B,200);
}
else
{
R=Rand(50,200);
G=Rand(50,200);
B=Rand(50,200);
}
color=ImageColorAllocate(this->IMAGE,R,G,B);
//柱形长度
leight=(this->X-this->BORDER*2)*(item_array[i]/item_max);
ImageFilledRectangle(this->IMAGE,this->BORDER,yy-this->BORDER,leight,yy,color);
ImageString(this->IMAGE,this->FONTSIZE,leight+2,yy-this->BORDER,item_array[i],this->FONTCOLOR);
//用于间隔
yy=yy-this->BORDER*2;
}
}


/* 折线图 */
function imageLine()
{
item_array=Split(this->ARRAYSPLIT,this->ITEMARRAY);
num=Count(item_array);
item_max=0;
for (i=0;i {
item_max=Max(item_max,item_array[i]);
}
//xx=this->BORDER;
//画柱形图
for (i=0;i {
srand((double)microtime()*1000000);
if(this->R!=255 && this->G!=255 && this->B!=255)
{
R=Rand(this->R,200);
G=Rand(this->G,200);
B=Rand(this->B,200);
}
else
{
R=Rand(50,200);
G=Rand(50,200);
B=Rand(50,200);
}
color=ImageColorAllocate(this->IMAGE,R,G,B);
//柱形高度
height_now=(this->Y-this->BORDER)-(this->Y-this->BORDER*2)*(item_array[i]/item_max);
if(i!="0")
{
ImageLine(this->IMAGE,xx,height_next,xx+this->BORDER,height_now,color);
}
ImageString(this->IMAGE,this->FONTSIZE,xx+this->BORDER,height_now-this->BORDER/2,item_array[i],this->FONTCOLOR);
height_next=height_now;
//用于间隔
xx=xx+this->BORDER;
}
}


/* 完成打印图形 */
function printAll()
{
ImageGIF(this->IMAGE);
ImageDestroy(this->IMAGE);
}


/* 调试函数 */
function debug()
{
echo "X:".this->X."
Y:".this->Y;
echo "
BORDER:".this->BORDER;
item_array=split(this->ARRAYSPLIT,this->ITEMARRAY);
num=Count(item_array);
echo "
数值个数:".num."
数值:";
for (i=0;i {
echo "
".item_array[i];
}
}
}
?>


/* 使用实例代码 */



以下是引用片段:

//实例化对象
report = new ImageReport();


//参数(长,宽,背影色R,G,B,是否透明1或0)
report->setImage(2000, 300, 255, 255, 255, 1);


//数值,用指定符号隔开
temparray="50,25,100,250,180,200,2150,220,200,150,50,25,100,250,180,200,150,220,200,150";


//参数(分隔数值的指定符号,数值变量,样式1为竖柱图2为横柱图3为折线图,距离)
report->setItem(',',temparray,3,20);


//字体大小1-10
report->setFont(1);


//输出图片
report->PrintReport();


//调式
// report->debug();
?>








添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.