分类:
2009-07-23 15:55:50
首先我们要介绍一下我们在这篇文章中使用的PHP类Libchart,这是个外国人(非中国国籍的地球人,被称为外国人!)写的免费类!使用起来非 常简单。看出来了吧,我们是要用一个外国人写的PHP创建柱状图,饼状图,和线性图的类,来工作的。如果你要学习这个类的写法,你也可以把这个类下载下来看看外国人的思路!
我们开始吧,首先下载这个类 点击此处:,解压缩!
第一个用例,我们来创建一个纵向的柱状图:
首先我们包含这个类文件到我们的程序中,并且实例化这个类,程序如下:
requir_once('./Libchart/classes/libchart.php');
$chart = new VerticalBarChart(500, 250);//参数表示需要创建的图像的宽和高
$dataSet = new XYDataSet();//实例化一个XY轴数据对象
//为这个对象增加四组数据集合,Point对象的第一个参数表示X轴坐标,第二个表示Y轴坐标
$dataSet->addPoint(new Point("Jan 2005", 273));
$dataSet->addPoint(new Point("Feb 2005", 321));
$dataSet->addPoint(new Point("March 2005", 442));
$dataSet->addPoint(new Point("April 2005", 711));
//把这个数据集合传递给图形对象
$chart->setDataSet($dataSet);
//设置图形的标题,并把它作为一个png文件渲染
$chart->setTitle("Monthly usage for ");
$chart->render("generated/demo1.png");//这里需要一个路径和文件名称
就这么简单一个像下图一样美丽的柱状图就出来了。
PHP创建一个饼状图的过程和上边说的柱状图大同小异,具体实例代码如下:
$chart = new PieChart(500, 250);
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Mozilla Firefox (80)", 80));
$dataSet->addPoint(new Point("Konqueror (75)", 75));
$dataSet->addPoint(new Point("Other (50)", 50));
$chart->setDataSet($dataSet);
$chart->setTitle("User agents for ");
$chart->render("generated/demo2.png");
创建饼状图就一点值得说一下就是Point的参数,第一个参数是占用比例的名称,第二个是数据,并不存在XY坐标;图如下:
创建一个线性图,这个有点和上边两个不同,就是数据集合的不同。我们也看到了XYDataSet这个数据集合, 另外在这个类中还有一个数据集合XYSeriesDataSet(),这个其实是一个比XYDataSet更大的集合而已,他的元素就是 XYDataSet,看一下例子和这段创建PHP线性图的程序,你一定就明白了:
include "../libchart/classes/libchart.php";
$chart = new LineChart(500, 250);
$serie1 = new XYDataSet();
$serie1->addPoint(new Point("06-01", 273));
$serie1->addPoint(new Point("06-02", 421));
$serie1->addPoint(new Point("06-03", 642));
$serie1->addPoint(new Point("06-04", 799));
$serie1->addPoint(new Point("06-05", 1009));
$serie1->addPoint(new Point("06-06", 1106));
$serie2 = new XYDataSet();
$serie2->addPoint(new Point("06-01", 280));
$serie2->addPoint(new Point("06-02", 300));
$serie2->addPoint(new Point("06-03", 212));
$serie2->addPoint(new Point("06-04", 542));
$serie2->addPoint(new Point("06-05", 600));
$serie2->addPoint(new Point("06-06", 850));
//这些和前面的两个看起来没有什么区别,关键在下边这一段,需要自己理解一下啦:
$dataSet = new XYSeriesDataSet();
$dataSet->addSerie("Product 1", $serie1);
$dataSet->addSerie("Product 2", $serie2);
$chart->setDataSet($dataSet);
$chart->setTitle("Sales for 2006");
$chart-> render("generated/demo3.png");
画出这样一个图来:
然后,把数据交给图形实例,然后渲染图形,和创建柱状图和线性图是一样的。其实国外还有好多的类程序,有的还相当的NB,例如结合flash的,结合web css的不一而足,这个用起来相对简单一点,大家尽管拿去用好了!
chinaunix网友2010-05-03 04:01:18
看过文章后,我很想下libchart来试一下,但是发现文章里的下载链接用不了。 自己在http://www.phpclasses.org/browse/找到过一个,但是发现它没有LineChart XYDataSet XYSeriesDataSet 类,也没有setDataSet()函数,用起来很不方便。 不知你有没有收藏一份,可不可以跟大家分享一下文章里这个更强大的libchart?如果行的话,能不能麻烦你更新一下资源链接,或者往我邮箱里发一份(360231347@qq.com)。
chinaunix网友2009-10-29 18:12:33
急聘 兼职网络信息回复员(若干名)100元/天 工资日结 招聘人数: 若干名 薪资待遇: 工作每天3-5小时,100元/天工资每日支付; 岗位描述: 负责公司所要求的信息回复工作(有内容样版),工作地点不限,专兼职均可! 应聘要求: 上网熟练,平均每天工作投入约3小时,具体根据效率自定; 学历不限,在 职或学生皆可;勤奋,认真,有责任感;熟悉用电脑发消息的整个流程。(很简单,学一下就会!) (入职不需交任何押金,手续费,更不会拖欠工资) 详情看公司招聘:http://bl.33se.cn/?17885.htm