解析PHP生成图表pChart的示例

发布时间:2024-06-15
pchart是一个开源的图表生成库,主要涉及3个class:pchart.class, pdata.class, pcache.class,可生成20多种简单或复杂的图表,支持png,jpg,gif通用图片格式。数据源可以来自于database,csv,当然也可以手写。使用该程序php需要开启gd服务,先来看看pchart的工作流程:
<?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,饼图:
上一个:诗歌的鉴赏方法与技巧 古诗词鉴赏方法与技巧
下一个:如何轻松搭建网站,完成线上转型?

超声波流量计的安装条件和探头的安装方式介绍
荣耀6plus怎么连不上5g,苹果6plus连不上wifi 总是密码错误
4000到6000的手机买哪个更好(四千到六千的手机)
空气风淋室厂家
喝茶时,如何做到“主人不失礼,客人不尴尬”
2021最火的游戏排行(目前最火游戏排行)
华帝燃气灶点火后熄灭怎么回事 华帝燃气灶点火后熄灭解决方法
企业注册资本可以随便填吗
林木种质资源库_类型_选购指南
【六安seo】使用SEO优化工具可提升排名