pChart
是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:
相关学习推荐:PHP编程从入门到精通
主要分为三步:
下面看一个简单的柱状图表:
代码如下:
<?PHP // Standard inclusions include(pChart/pData.class); include(pChart/pChart.class); // Dataset deFinition $DataSet = new pData; //图表数据 $DataSet->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 '<img src='.$imageFile.'>'; ?>
这个是雷达效果的:
代码:
<?PHP // Standard inclusions include(pChart/pData.class); include(pChart/pChart.class); // Dataset deFinition $DataSet = new pData; $DataSet->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 '<img src='.$imageFile.'>'; ?>
再看几个其他的效果
1,饼图:
2, 双座标曲线图:
3, 层叠柱状图:
4, 多图表:
图表的种类已经相当丰富了,具体图表设置请参考
http://pchart.sourceforge.net/documentation.PHP?topic=pChart
::源代码下载:::
http://xiazai.jb51.net/202007/yuanma/pChart_jb51.rar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。