你可能还不知道这一点,但是PHP具有一项非常有用和独特的特性:它能够在运行期间动态地创建图像。这一特性打开了通向完成各种漂亮事情的大门,包括能够实时显示Web网站流量的图表,或者以图形的方式查看股票指数的动态。
这就是本篇教程将要展开的内容。我将要告诉你如何使用PHP内置的图像生成能力以及很酷的BarGraph类来即时创建图表和柱形统计表。所以读读本文会是很有趣的。
BarGraph类是一个由Diogo Resende开发和维护的开放源代码类。它专门设计用来通过PHP来减轻动态生成柱形统计表的任务,方法是让你在一个数组里指定X轴和Y轴的值,然后再用数据创建图表。
BarGraph类还可以让你控制图表的所有参数,包括轴的刻度、颜色、边框和标题等。
要开始上手就要下载这个类,并将它解压到你的Web服务器根目录里的一个目录下。要注意的是,如果想要成功地使用BarGraph类,就需要安装PH
一旦安装好所有的东西,就输入列表A里列出的脚本,看看这个类是如何工作的:
当运行列表A里的脚本时,你应该会看到一个同图A类似的图表。
在初始化BarGraph()类的对象之后,就建立了一个PHP关联数组。这个数组含有用来生成图表的原始数据。在这个数组里,每个键代表着X轴上面的一个项目,而相对应的值代表着该项目在Y轴上的数量。你可以使用字母或者数值键名称,每个键的值都必须是数值。
一旦设置好了这个原始数组,下一步就是将它作为变量传递给SetBarData()方法了。这个方法会负责剖析数据值,并进行生成图表所需要的计算。图标真正的生成是由DrawGraph()函数来完成的,这个函数会在内部使用PHP的图像生成API来建立(X和Y)轴、轴心点,以及柱形本身。
既然我们已经了解了基础知识,你的下一个问题肯定就是我应该如何对它进行自定义,以满足对颜色和大小的特别要求了。首先,如果仔细看看由上一个列表生成的图标,你会发现Y轴并不是那么整洁。这主要是因为我们为Y轴的刻度指定一个步进值(step value),所以BarGraph()会尝试在这个轴上放一个具体的数值刻度,结果就导致了一个不可读的混乱。
让我们看看列表B,它的输出就如图B里的一样,已经更正了这个错误。
通过为Y轴设置步进值,这个轴就不会同数字混在一起,而这反过来也让人能够看清楚每个项目的值。还要注意的是,我使用了SetGraphTitle()方法来为图标设置标题。