用Flash图形化数据

SWF和Flash简介
SWF是Macromedia Flash用来在Internet上向用户传送图片、动画和声音的文件格式。Flash是你能够向用户提供一个丰富的和动态的界面。大约90%的Web用户不用安装浏览器插件就可以浏览SWF内容,超过2亿人下载了Flash播放器。Macromedia在1998年4月公开了SWF规范。在PHP4中加入SWF的支持。
PHP内建的动态生成图片的能力是一个吸引我的特征。它可以生成看起来更专业更让人舒适的报表和界面。一开始,我用充斥在网上的各种GD代码来创建图片来显示我的不同项目的数据。但我很快就被生成的图片的不确定搞烦了,决定试试看能不能用矢量图形来解决问题。我想你也会同意,结果看起来好多了。假如一个图片能代表一千个词,想象一下一幅Flash动画代表什么?
我将尽量使这个例子简单一些,只说说基础的东西。我的目的只是创建一个容纳GD生成的GIF和PNG图片的Drog in。你可以加入对它的扩展和增强,比如Flash赖以出名的各种可视效果。例如,你可以制作在载入页面时的图形淡入、飞舞,或者动态的显示几片雪花。你的想象力是对PHP的SWF函数的唯一限制。
怎样取得需要图形化的数据最好留给读者去练习。因为这篇文章是关于动态创建Flash文件的,我将在例子中使用一个假想的表作为数据集来创建它的图形化视图。你需要检查你的数据,决定采用一种最适合的图表形式。在多数情况下,饼图是一个合适的选择,这也是我的例子要采用的图表形式。折线图、柱状图或者面积图都可以用相似的方式创建。
在这个例子中,假定我们把一些包裹送到了几个城市,而我们要看看每个城市收到的包裹所占的比例。我们决定把数据存储在数据库“world”的表“city”中。让我们先建立这个表,并输入这个例子需要的数据。

#
# Table structure for table 'city'
#

DROP TABLE IF EXISTS city;
CREATE TABLE city (
city_id int(14) NOT NULL auto_increment,
city_name varchar(255) NOT NULL,
city_timestamp timestamp(14),
PRIMARY KEY (city_id)
);

#
# Dumping data for table 'city'
#

INSERT INTO city VALUES( '1', 'London', '20000917122625');
INSERT INTO city VALUES( '2', 'London', '20000917122626');
INSERT INTO city VALUES( '3', 'London', '20000917122626');
INSERT INTO city VALUES( '4', 'London', '20000917122627');
INSERT INTO city VALUES( '5', 'Paris', '20000917122631');
INSERT INTO city VALUES( '6', 'Paris', '20000917122632');
INSERT INTO city VALUES( '7', 'New York', '20000917122644');
INSERT INTO city VALUES( '8', 'New York', '20000917122645');
INSERT INTO city VALUES( '9', 'New York', '20000917122646');
INSERT INTO city VALUES( '10', 'New York', '20000917122646');
INSERT INTO city VALUES( '11', 'New York', '20000917122647');
INSERT INTO city VALUES( '12', 'Hong Kong', '20000917122654');

配置你的系统以使用SWF
我用的环境是RedHat Linux6.2, Apache 1.3.12, PHP 4.0.2(编译为Apache模块)。假如你在Windows中使用PHP,事情会有些不同。你需要下载或者编译一个Flash Dll,但是不需要修改代码。
PHP通过Paul Haeberli的libswf模块来提供创建Shockwave Flash 文件的能力。你需要从http://reality.sgi.com/grafica/flash/下载libswf。然后,你需要使用选项--with-swf[=DIR]来配置PHP,这里DIR是include和lib目录所在的目录。include目录下必须有swf.h文件,而lib目录下必须有libswf.a文件。当解压缩下载的libswf发布版本的时候,这两个文件会被解压缩到同一个目录。你需要把这两个文件移到正确的位置。完成后,目录结构应该像下面的样子:

/usr/local/swf/
/include/
swf.h
/lib/
libswf.a
/fonts
...

为了使SWF函数能正常工作,你需要复制/usr/local/swf/fonts/目录,以便web服务器能访问该目录(对apache和mod_php来说,最好的办法就是使用绝对路径,并把以上目录复制到apache的文档根目录下。)另外,在libswf的发布版本中有一个很小的c程序,能够把类型1的字体转换成Flash能用的字体。
因为我们要动态地创建和写SWF文件,所以web服务器需要在存储文件的目录有写权限。

让我们烤点甜饼(做饼图)
  成功地安装了PHP地Shockwave Flash支持后,就可以用PHP创建Shockwave文件了。学习的最好方法就是直接跳到程序去,所以下面就让我们看看程序。第一个文件包括怎样使用类的示例代码,同时也显示了如何将一个Flash文件嵌入到HTML文档中。

<?php

// include class needed for flash graph
include("class.pie.flash.php");

mysql_connect ("localhost", "root", "");

$query = "SELECT DISTINCT city_name, COUNT(city_id)
FROM city

时间: 2024-08-03 11:23:13

用Flash图形化数据的相关文章

用Flash图形化数据(一)_php基础

by Bryan Mattern  一木 译 SWF和Flash简介     SWF是Macromedia Flash用来在Internet上向用户传送图片.动画和声音的文件格式.Flash是你能够向用户提供一个丰富的和动态的界面.大约90%的Web用户不用安装浏览器插件就可以浏览SWF内容,超过2亿人下载了Flash播放器.Macromedia在1998年4月公开了SWF规范.在PHP4中加入SWF的支持.     PHP内建的动态生成图片的能力是一个吸引我的特征.它可以生成看起来更专业更让人

用Flash图形化数据(二)_php基础

让我们烤点甜饼(做饼图) 成功地安装了PHP地Shockwave Flash支持后,就可以用PHP创建Shockwave文件了.学习的最好方法就是直接跳到程序去,所以下面就让我们看看程序.第一个文件包括怎样使用类的示例代码,同时也显示了如何将一个Flash文件嵌入到HTML文档中. <?php // include class needed for flash graph include("class.pie.flash.php"); mysql_connect ("

数据的价值主要体现:图形化方式来呈现数据

文章描述:数据的价值主要体现:图形化方式来呈现数据. 在可用性测试中,数据的价值主要体现在为测试结论提供支持,换句话说,如果我们不能用数据很好的和别人进行交流,我们数据的价值有非常有限. 用表格形式来呈现数据是一种比较简便的方式,但是,为了更好的对数据做出解释,我们需要图形化的方式来呈现数据. 通常情况下,我们用到的数据图的类型有以下几种: l  条形图(柱状图) Column or bar graphs l  折线图 Line graphs l  散点图 Scatter plots l  饼图

WF4.0实战(八):实现一套图形化的数据访问层

现在,估计三层架构仍然被程序员广泛使用.先列出这三层,不是怕大家不知道这三层,而是下文的需要,:). 1.数据访问层 2.业务逻辑层 3.表示层 还有就是数据交换的实体层 很多程序员都用代码生成器,我也不另外.一般的代码生成器会帮助程序员生成数据访问层和业务逻辑层.由于表示层是千变万化的, 是很难通过生成器生成出来的.当固定生成的业务层不能满足需求的时候.往往需要去手动的修改代码,这篇文章教你如何通过图形化的界 面定制流程化的业务逻辑,无需修改你的代码. 先看下我的这套数据数据访问层的截图: 数

Kibana——数据图形化制作

Kibana把数据图形化,可以帮助我们更好的去分析数据,找到数据里面的结构 注意看一下,上面缩看的界面,是一个聚合的结果,他是由CPU Usage图表.System Load图表.CPU usage over time图表. System Load over time图表一起构造而成的.我把这种聚合称作一组相关性的数据看板,你可以随意的组合你的看板,如果你觉得这样做是合适的.那么,CPU Usage图表.System Load图表.CPU usage over time图表. System Lo

在数据库或excel中存在两列数据,如何自动实现生成图形化

问题描述 在数据库或excel中存在两列数据,如何自动实现生成图形化 在数据库或excel中存在两列数据,比如a对应ba对应c,b对应c.自动实现生成图形化,用方框和箭头表示,数据不重复.应该怎么做呀 解决方案 遍历数据,首先找到所有的节点,以方框的形式画出来,并且记下坐标.然后再读取关系数据,根据坐标绘制箭头.为了图形美观,你需要对这些节点排序,找到总交叉或者线长最小的,当然穷举可以做到,不过当数据量大的时候,你就需要用诸如退火算法或者遗传算法之类的启发式算法来求解了. 解决方案二: exce

《Excel数据可视化:一样的数据不一样的图表》——第 3 章 数据表格的图形化 3.1突出显示特殊数据的单元格

第 3 章 数据表格的图形化 ● 突出显示特殊数据的单元格● 用项目规则显示隐藏在计算机中的数据● 用数据条的长度代表数值大小 ● 使用色阶区分不同范围内的数据● 用图标集让你的数据大放异彩● 在表格中展示你的图表 3.1突出显示特殊数据的单元格 在实际的工作中,我们常会遇到这样的情况:在大量的数据中查找满足一定条件的数据,并把它突出显示出来.有人也许会想到使用筛选功能先筛选出符合条件的数据,然后再对筛选后的数据做一些特殊格式的标记.虽然这是一种方法,但不免显得麻烦.让小编带你去看看 "突出显示

介绍50个数据图形化工具

数据是抽象的,尤其是http://www.aliyun.com/zixun/aggregation/13584.html">海量数据,人的大脑很难直接对大量数据进行分析并获得印象,然而从另一个角度看,数据也可以异常美丽,人们设计了很多工具,让枯燥的数据图形化,本文介绍了50个数据图形化工具,它们以令人难以置信的方式让我们看到了数据美丽的一面.这是本文档第二部分,第一部分请参阅数据之美(上). 其它 Visualizing Information Flow in Science 显示学术刊物

网页设计技巧:视差滚动效果和图形化在网页中的呈现

文章描述:ONE 视差滚动效果 Parallax Scrolling. ONE 视差滚动效果 Parallax Scrolling 大家小时候是否玩过红白机或小霸王上面的游戏? 这些游戏基本上都是通过前景与背景在场景移动时产生不同的视差,从而达到简单的立体效果 所以说视差滚动不是啥新鲜事儿,我们小时候就玩过了-- 目前这种视差滚动效果被越来越多的国外网站所应用, 成为网页设计的热点趋势 给它以重新定义 不过这类效果的使用也需要看具体环境和最终页面出来的整体性能,防止页面过于拖沓. 其次,设计上要