pChart是一个开源的图表生成库,主要有3个Class:pChart.class、 pData.class、pCache.class,可生成20多种简单或复杂的图表,支持PNG、JPG、GIF通用图片格式。数据源可以来自于Database、CSV等。使用pChart需要开启PHP的GD服务。
pChart的工作流程主要分为三步:
- 读取用于生成图表数据(数据库、文件)
- 设计图表样式(圆角、底色等)
- 制作标签、题目、图例并生成图表
以下为一个简单的实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<?php /* 使用pchart画一个饼图的全过程 */ // 载入图表类 include("../pChart/pchart/pData.class"); include("../pchart/pChart/pChart.class"); //准备好画图的数据 $arr1 = array(6,4,2,1); //饼图各板块数据 $arr2 = array('省级','市级','县级','乡镇');//数据的文字说明,和数据位置对应 //第一步 获得饼图数据 $data = new pdata; //实例化数据类 $data->AddPoint($arr1,"serie1");//装入数据并命名为serie1 $data->AddPoint($arr2,"serie2");//装入说明并命名为serie2 $data->AddAllSeries(); //不明,应该是把数据提交到数据池里面 $data->SetAbsciseLabelSerie("serie2"); //设置标签 //第二步 画图形框架 $im = new pchart(420,1000); //创造一个画布并赋予尺寸 $im->drawFilledRoundedRectangle(7,7,413,243,5,240,240,240); //画圆角矩形(x1,y1,x2,y2,圆角半径,R,G,B),填充中间部份 $im->drawRoundedRectangle(5,5,415,245,5,230,230,230); //方法同上,这是画圆角矩形"框"的函数,中间不填充 $im->createColorGradientPalette(195,204,56,223,110,41,5); //控制饼图各版块颜色,在某一个范围内随机变化 //第三步 把数据导入画好的图形内 $im->setFontProperties("c://windows//fonts//Arialuni.ttf",8);//设置字体及大小,注意路径的写法 $im->AntialiasQuality = 0; //不明,字面意思:抗锯齿质量? //下面是整页代码的核心部份,画一个3维饼图专用函数,共有11个参数 //$Data,饼图结构数据,从$data实例取得 //$DataDescription,数据参数,从$data实例取得 //$XPos,圆心的X坐标 //$YPos,圆心的Y坐标 //$Radius=100,半径 //$DrawLabels=PIE_NOLABEL,标签样式 // - PIE_NOLABEL 没标签(默认) // - PIE_PERCENTAGE 百分比 // - PIE_LABELS 标签 // - PIE_PERCENTAGE_LABEL 百分比和标签 //$EnhanceColors=TRUE, 好像是边框渲染,但我看不出有什么效果 //$Skew=60,倾斜角度,比较美观的应该是在40-70之间 //$SpliceHeight=20,饼的厚度 //$SpliceDistance=0,各板块间距离 //$Decimals=0 显示百分比小数位数 $im->drawPieGraph($data->GetData(),$data->GetDataDescription(),180,130,110,PIE_PERCENTAGE_LABEL,false,50,20,5,2); //饼图的标签列表(从左至右顺序) //$XPos,$YPos,标签框左上角的XY坐标 //$Data,$DataDescription,同上个函数内容 //$R,$G,$B 背景颜色 $im->drawPieLegend(330,15,$data->GetData(),$data->GetDataDescription(),250,250,250); //第四步 制作图表标题 $im->setFontProperties("c://windows//fonts//Arialuni.ttf",12); //写入标题的函数 //XPos,$YPos,坐标,注意这是左下角的坐标,而不是通常的左上角 //$Value,标题文字内容 //$R,$G,$B,文字颜色 //$XPos2=-1,$YPos2=-1,也是座标调整的设置,具体效果你自己实验吧 //$Shadow=FALSE 阴影开关 $im->drawTitle(20,30,'我画的一个饼图',100,100,100,-1,-1,false); //第五步 整理并输出图形 $im->Render("test.png");//保存为一个图形文件 ?> |
饼图调用:<img src=”test.png” />
打赏作者微信支付

支付宝
