频道栏目
首页 > 资讯 > 开放平台 > 正文

PHP生成图表pChart

16-01-06        来源:[db:作者]  
收藏   我要投稿

pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:

pChart

主要分为三步:

* 读取用于生成图表数据(数据库、文件) * 设计图表样式(圆角、底色等) * 制作标签、题目、图例并生成图表

下面看一个简单的柱状图表:

2009-8-6-13.13.35

代码如下:

AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); $DataSet->AddAllSeries(); $DataSet->SetAbsciseLabelSerie(); //数据图例 $DataSet->SetSerieName("Microsoft","Serie1"); $DataSet->SetSerieName("IBM","Serie2"); $DataSet->SetSerieName("Google","Serie3"); // Initialise the graph $Test = new pChart(700,230); //设置图表尺寸、样式 $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->setGraphArea(50,30,680,200); $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); $Test->drawGrid(4,TRUE,230,230,230,50); // Draw the 0 line $Test->setFontProperties("Fonts/MankSans.ttf",6); $Test->drawTreshold(0,143,55,72,TRUE,TRUE); // Draw the bar graph
 //柱状图要使用drawBarGraph() $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80); // Finish the graph
 //制作图例、标题、字体等属性 $Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); $Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawTitle(50,22,"Example",50,50,50,585); //生成图表 $imageFile = "example12.png"; $Test->Render($imageFile); echo ''; ?>

这个是雷达效果的:

2009-8-6-13.50.24

代码:

AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label"); $DataSet->AddPoint(array(6,4,7,4,5),"Serie1"); $DataSet->AddPoint(array(2,3,5,2,4),"Serie2"); $DataSet->AddSerie("Serie1"); $DataSet->AddSerie("Serie2"); $DataSet->SetAbsciseLabelSerie("Label"); $DataSet->SetSerieName("Reference","Serie1"); $DataSet->SetSerieName("Tested computer","Serie2"); // Initialise the graph $Test = new pChart(400,400); $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240); $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230); $Test->setGraphArea(30,30,370,370); $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255); $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220); // Draw the radar graph
 //要使用drawRadarAxis()生成雷达效果 $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230); $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20); // Finish the graph $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255); $Test->setFontProperties("Fonts/tahoma.ttf",10); $Test->drawTitle(0,22,"Example",50,50,50,400); $imageFile = "example8.png"; $Test->Render($imageFile); echo ''; ?>

再看几个其他的效果
1,饼图:

2009-8-6-14.02.05

2, 双座标曲线图:

2009-8-6-14.03.44

3, 层叠柱状图:

2009-8-6-14.08.31

4, 多图表:

2009-8-6-14.13.45

相关TAG标签
上一篇:Dedecms最常用路径调用
下一篇:PHP导入导出Excel方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站