加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Open Flash Chart 教程

发布时间:2020-12-15 17:41:42 所属栏目:百科 来源:网络整理
导读:简介 Open flash chart 简称 OFC ,是一个开源的 flash 报表组件。我们不仅可以免费使用,而且还可以修改源代码,来达到我们想要的效果。客户端在得到数据以后,在 FlashPlayer 中渲染出报表图。 目前通用的 OFC 版本为 2 L ug Wyrm Charmer ,使用 actionsc

简介

Open flash chart 简称OFC,是一个开源的flash报表组件。我们不仅可以免费使用,而且还可以修改源代码,来达到我们想要的效果。客户端在得到数据以后,在FlashPlayer中渲染出报表图。

目前通用的OFC版本为2 Lug Wyrm Charmer,使用actionscript3.0编写,Adobe Flex编译。

open-flash-chart.swf解析传递给它的json文件并按json文件的内容创建对应的图表。传入的Json文件会指定图表的类型,颜色,线条类型等信息。该json文件可以是服务器上通过动态脚本生成的,也可以是本地文件。为了方便在不同环境下生成需要的json文件,作者提供了相应的开发包。在发行包目录下我们可以找到pythondot net php,和perl等的开发包。

Open flash chart创建图表的过程很简单——按照规格生成json,然后传递给open-flash-chart生成图表。

官网网址:http://teethgrinder.co.uk/open-flash-chart/

1、? 动手实践

1.1、获取OFC

OFC官方网站首页的下方可以找到跳转到下载页面的超链接。也可以直接使用下面的地址跳转到下载页面。

http://sourceforge.net/projects/openflashchart/files/open-flash-chart/

在下载页面我们可以看到从1.9.1~2 Lug Wyrm Charmer等任意版本。最后一版的更新时间是2009-07-27,这已经是很久远的事了,所以建议你选择最高版本。解压下载后的文件我们可以看到如下目录结构。

这里需要重点关注如图划红线的文件夹。其他文件夹是针对特殊语言的帮助类,需要那个可以自己研究一下。Data-files文件夹里面存放着大量的例子,遗憾的是例子本身无法执行,例子中的js代码还是1.x版本时编写的,并不能运行在2中,因为依赖的第三方js组件也升级了。但是这个文件夹的实例数据还是很值得研究一下的。Js文件夹中保存着OFC依赖的第三方JS组件swfobject,关于这个组件的用途会在后面提到,如果有兴趣请查阅更多相关资料了解。Open-flash-chart文件夹保存着OFC的源代码文件。Open-flash-chart.swf文件是编译后的文件,也就是我们实际使用时需要引入到工程目录中的文件。

1.2swfobject

swfobject是一个开源js组件,主要为在html中嵌入flash提供支持。一个最大的好处是把flash嵌入IE的时候,不会出现“单击激活此控件”的提示。

Open flash chart 1.x版本采用swfobject1.5作为flash引入方式。到了open flash chart 2版本时,swfobject也已经升级到了2.x版本,并且swfobject2.x与之前版本的设计完全不同。所以在使用时需要注意这点区别。直接在open flash chart官网下载到的版本2压缩文件中的例子代码中却是用的swfobject1.x的写法,而文件包中包含的swfobject2.1版本的,所以无法正常运行。

1.3、一个极简的柱状图

首先创建一个WEB工程,将swfobject.jsopen-flash-chart.swf两个文件复制到工程的根目录,这里以JAVA为例,工程目录如下图:

?

?

编辑index.jsp文件,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

? <head>

? ? <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

??? <title>柱状图</title>

? </head>

?

? <body>

??? <h1>柱状图</h1>

??? <div id="bar">

??? <p>如果你看到这段文字,说明你的浏览器不支持flash或者你的程序有问题!</p>

??? </div>

?? <script type="text/javascript" src="swfobject.js"></script>

??? <script type="text/javascript">

???? ?? ?swfobject.embedSWF(

???? ?? ??? "open-flash-chart.swf",

???? ?? ??? "bar",

???? ?? ??? "500px",

???? ?? ??? "9.0.0",

???? ?? ??? "expressInstall.swf",

??????????? { "data-file": "bar.js" }

????????? );

??? </script>

? </body>

</html>

代码比较简单,重点是,引入swfobject.js文件。调用swfobject.js中定义的静态方法embedSWF加载open-flash-chart.swf文件并设置参数。EmbedSWF的参数意义依次是:

1,flash文件地址,

2,2flash文件加载到区域的外层标签ID

3,flash区域的宽度,

4,flash区域的高度,

5,比对浏览器flash播放器最低版本是否低于设定版本。

6,指定的flash文件用于播放器升级。

7,open-flash-chart绘制报表需要的数据。

接下来在工程根目录下创建bar.js文件,并录入如下数据:

{

??? "elements":[{

?????? "type":"bar",

?????? "values":[9,6,7,9,5,1]

??? }]

}

?

数据的意义会在后面讲解,请先收起你的好奇心。

OK,将工程部署到服务器上访问index.jsp页面,一幅很专业的图标就呈现在你的面前啦。是不是很容易呢!

?

2OFC数据结构

通过上一章的例子我们知道,Openflash chart要求传入的是一个json对象,因此json文件的最外围必须是{}其他内容都定义在该对象内。在根对象的下面定义了以下对象/属性:

{

??? 'title':{},

??? 'y_legend':{},

??? 'y2_legend':{},

??? 'x_legend':{},

??? 'y_axis':{},

??? 'y_axis_right':{},

??? 'x_axis':{},

??? 'bg_color':'',

??? 'tooltip':{},

??? 'radar_axis':{},

??? 'elements':[]

}

这些属性会在后面详细讲解。在这里首先需要了解以下OFC展现时的图标结构与一级属性的对应关系。下图是将一幅图标分隔成了若干区域,每一个区域的设置通过一个一级属性来完成。

下面我们通过改善之前完成的柱状图来学习这些属性。

注意:所有属性中涉及到的字符串采用“”双引号,不能使用单引号。

2.1elements

elements对象是一个chart对象数组,是一级对象中唯一必需的元素,这一点从柱状图例子可以看出。有人会对elements对象时一个chart对象数组不理解,我们可以通过一个小例子帮助理解。首先在之前的bar.js中的elements数组中增加一个数组元素,内容如下:

{

?????? "type":"line",1]

}

重新访问index.jsp页面,图表变成了柱状图与线图组合而成的复合图表。由此我们可以理解,elements对象时一个chart对象数组的意义了吧。

复合图

接下来给出elements数组中每个chart对象的可选属性。

属性名

说明

type

定义chart的类型,最常用的类型有bar(柱状图),pie(饼图),line(线图)

alpha

图形元素的不透明度 0~1之间的数值

colour

图形元素的颜色值为RBG颜色#000000

text

chart的名字,显示于title的下方,chart的上方,靠左对齐。

font-size

text的字体大小。

values

数值序列。对应不同的chart类型,values属性内的值会有不同的结构。通常为一个数值数组,每个数值表示一个点。当需要对点的样式进行特别设置时,通过一个对象来描述。

on-click

定义click事件的回调,可以是一个javascript的方法句柄,也可以是一个url链接

tip

定义鼠标划过时的提示信息,可以在tip的文本中用预定义的变量调用chart数值,比如#val#表示对应项的值。不同类型的chart提供了不同的预定义变量

?

继续扩展之前的例子,在例子中实验alphacolourtextfont-sizeon-clicktip等属性。扩展后的完整数据如下:

{

??? "elements":[{

?????? "type":"bar",

?????? "alpha":0.3,

?????? "colour":"#ee0000",

?????? "text":"柱状图",

?????? "font-size":18,1],

?????? "tip":"^_^#val#",

?????? "on-click":"clickbarfun"

??? },{

?????? "type":"line",

?????? "alpha": "0.7",

?????? "colour":"#0000ff",

?????? "text":"线图",

?????? "font-size":14,

?????? "values":[10,8,10,2],

?????? "tip":"@_@#val#",

?????? "on-click":"clicklinefun"

??? }

??? ]

}

改造后的图标如下图所示,注意数据中的 #val#是一个预定义,代表鼠标停留位置所代表的实际值。

请仔细与之前的效果对比,体会这些属性的作用。在线图设置中,我们注意到tipon-click两个属性的设置并没有起到作用,这是为什么呢? Values属性的内部属性设置留在后面讲解。

2.2title

图表的标题,位于chart的正上方,内部属性说明如下:

属性

说明

text

标题的文字

style

css样式,定义文字的字体类型,大小,颜色,背景颜色,对其方式等

在之前的数据文件中与elements同级添加属性title的定义如下:

??? "title":{?

?????? "text":"东边儿我地美人,西边儿黄河流!",

? ????? "style":"{font-size:20px; color:#0000ff; font-family:’宋体’; text-align: center;}"

??? }

柱状图最上方出现了我们定义的标题。

2.3y_legend/y2_legend

Y_legend属性定义Y轴的左标题,y2_legend属性定义Y轴的右标题。

属性

说明

text

标题的文字

style

css样式,定义文字的字体类型,大小,颜色,背景颜色,对其方式等

这个两个属性对中文支持有BUG,英文则没有问题。具体BUG的表现请通过例子自己体会,将下面的数据添加到柱状图例子中,与title同级。

??? "y_legend":{

?????? "text":"English",

? ????? "style":"{font-size:20px; color:#0000ff; font-family:’宋体’; text-align: center;}"

??? },

??? "y2_legend":{

?????? "text":"中文",

? ????? "style":"{font-size:20px; color:#0000ff; font-family:’宋体’; text-align: center;}"

??? }

?

这里可以清晰的看到左边的标题正确显示出来了,右边的中文标题则没有显示出来,这是一个BUG,至今没有被修复。

2.4x_legend

x轴的下标题,显示于chart的底部

属性

说明

text

标题的文字

style

css样式,定义文字的字体类型,大小,颜色,背景颜色,对其方式等

在柱状图例子数据的基础上添加下属数据,数据与title同级,查看效果。

??? "x_legend":{

?????? "text":"中文",

? ????? "style":"{font-size:20px; color:#0000ff; font-family:’宋体’; text-align: center;}"

??? }

图略,通过图可以知道x_legend没有y轴标题的中文BUG

2.5y_axis/y_axis_right

y轴的轴线定义,分为左轴线和右轴线。属性如下

属性

说明

stroke

y轴的粗细,以像素值表示

tick-length

y轴上每一个节点的刻度线的长度

colour

y轴线条的颜色

grid-visible

是否绘制横向网格线,布尔值

grid-colour

横向网格线的颜色

offset

true/false,表示y轴是否从0开始,为false时表示从0开始,即没有偏移量;为true时表示有一定偏移量,不直接从0开始。

max

y轴显示范围的最大值

min

y轴显示范围的最小值

steps

y轴分段的步长,默认值为1

labels

指定y轴的标签。

先来体验一下stroke,tick-length,colour,grid-visible,grid-colour,offset,max,min,steps等属性,labels稍等片刻。

老规矩,填充bar.js文件,增加如下内容。

"y_axis":{

?????? "stroke":6,

?????? "tick-length":6,

?????? "colour":"#00ff00",

?????? "grid-visible":true,

?????? "grid-colour":"#ff0000",

?????? "offset":false,

?????? "max":100,

?????? "min":0,

?????? "steps":20

??? },

?????? "y_axis_right":{

?????? "stroke":2,

?????? "tick-length":2,

?????? "colour":"#ff0000",

?????? "grid-colour":"#00ff00",

?????? "max":80,

?????? "steps":20

??? },

查看柱状图的变化

请自己修改上面数据的值,不断体会每个属性的意义。

接下来专门研究下labels这个属性是一个数组,数组内可以包括两种值,一种是字符串,另一种是{}对象。

继续改写bar.js,为y_axisy_axis_right分别增加一段labels的定义。

?????? "labels":{"text":"#val#","colour":"#DD3030","size":16,

?????????? "labels":[

????????????? {"y":20,"grid-colour":"#000000","text":"#val#"},

????????????? {"y":10},

????????????? {"y":30},

????????????? {"y":40},

????????????? {"y":50},

????????????? {"y":60}

?????????? ]

?????? }

?

?

"labels":[1,2,3,4,10]

查看柱状图的变化,如果labels的值是一个数值或字符串的数组,则会直接已1为步进作为可读名。如果lables是一个对象,对象里面的定义会冲掉y_axis里面定义的部分属性。如果在lables里面又包含一个lables的定义,这个内层lables是一个自定义刻度数组。数组的每一个元素代表一个自定义可读,且一旦自定义可读,默认刻度将会消失。

?我没有一张Labels内所支持的全部属性清单,所以,这个属性的内容还需要进一步完善。

2.6x_axis

x_axis的属性与y_axis的属性大部相同,需要注意的是以下属性:

labels:x_axis中的自定义labels时格式与在Y轴上不太一样,在y_axis中每个自定义的都必须定义成一个label对象,而在x_axis中自定label可以是一个String值。比如,下面用四个月份来定义x轴的label:

“labels”:{“labels”:[“January”,“February”,“March”,“April”]}

3d:立体x轴的高度数值。如果3d属性的值大于0,将x轴显示成3d样式,并根据输入的数值调整轴的高度。

tick-height:对应于y_axistick-length,表示x轴上每一个节点的刻度线的高度。

bar.js文件中再增加关于x轴的定义

??? "x_axis":{

?????? "3d":4,

?????? "tick-height":6,

?????? "labels":{

?????????? "colour":"#000000",

?????????? "size":12,

?????????? "labels":["正月",

???????????????????? "#val#",

???????????????????? "#val#"]

?????????? }

??? }

得到柱状图如图:

2.7bg_colour

整个chart的背景颜色

"bg_colour":"#ffffff"

???????? bar.js文件中增加这一句,改变背景颜色。

2.8tooltip

定义全局的tooltip的样式

属性

说明

shadow

true/false,是否需要阴影效果

rounded

tip边框的圆角的半径

stroke

tip边框线条的粗细

colour

Tip边线颜色

background

背景颜色

title

tip内容第一行(<br>标签做分分隔)css样式

body

tip内容第二行及以后行的样式

mouse

数值,具体意义不明,测试当值为1时,鼠标离柱体比较远时也会出现提示。2时,鼠标需要进入柱体区域才提示,3时,不提示,好奇怪的参数。

bar.js文件中增加如下数据

??? "tooltip":{

?????? "shadow":true,

?????? "rounded":90,

?????? "stroke":2,

?????? "background":"#00ff00",

?????? "title":"{font-size:16}",

?????? "body":"{font-size:12}",

?????? "mouse": 2

??? }

请自己仔细观察提示信息的变化,更自行修改部分值查看变化。

3、柱状图

3.1、类型

???????????

?

柱状图有很多小类别,每一种提供一种差异化的艺术表现形式。

类型

说明

bar

基本柱状图(垂直方向)

bar_glass

玻璃效果柱状图

bar_sketch

素描效果柱状图

bar_cylinder

圆柱形效果柱状图

bar_cylinder_outline

带外轮廓线的圆柱效果柱状图

bar_dome

圆顶效果柱状图

bar_round

顶端和底端都是圆形效果的柱状图

bar_round_glass

带玻璃效果的圆顶效果柱状图(注意,此图的底部是平的)

bar_3d

横截面为方形的立体柱状图

bar_round3d

横截面为圆形的立体柱状图

bar_filled

带外轮廓线的柱状图

bar_plastic

塑料质感柱状图(四角为圆角)

bar_plastic_flat

塑料质感柱状图(底部为直角)

3.2、扩展属性

在基本的chart对象属性之外,柱状图还包含以下属性

属性

说明

axis

left/right,设置图中的数据以左右哪个y轴为基准。左右两边的y轴可能定义在不同的区间,默认的left

3.3values数组中可配置属性

在柱状图的values数组中每一个值可以是一个数值也可以是一个对象,每个值或者对象代表一个圆柱。迄今我们只使用了直接量的方式。可以通过下面列举的属性为每一个圆柱做个性化设置。

属性

说明

top

圆柱最高点的值。在tip属性中可以通过#top#来调用。

bottom

圆柱最低点的值。在tip属性中可以通过#bottom#来调用

outline_colour

边框的颜色。当chart类型为bar_filledbar_sketch时有效

colour

圆柱的颜色。此颜色设置将覆盖chart对象中的颜色设置

tip

鼠标划过时的提示信息。用法与chart对象的tip设置想通。此tip设置将覆盖chart对象中的tip设置。

on_click

click事件的回调。此设置将覆盖chart对象中的on-click设置

bar.js中柱状图的第一个节点从9改为如下数据:

{

?????????? "top":9,

?????????? "bottom":4,

?????????? "colour":"#009900",

?????????? "tip":"top=#top# bottom=#bottom#"

}

再查看柱状图,观察其变化。其他属性请读者自行实验。

4、水平柱状图

水平柱状图比之垂直柱状图在参数设置方面有一定不同,在这单独对其进行讲解。

水平柱状图的type类型为hbar

读者可以新建一个hbar.js文件,替换之前的bar.js文件引入到index文件中。文件内容如下:

{

??? "title":{?

?????? "text":"横向柱状图",

??? "y_axis": { "offset": 1,"labels": [ "9","8","7","6","5","4" ,"3" ,"2" ,"1","正月"] },

??? "elements":[{

?????? "type":"hbar",

??? ??? "values":[{"right":9},{"right":6},{"right":7},{"right":9},{"right":5},{"right":1}],

?????? "on-click":"clickbarfun"

?

??? }

??? ],

??? "bg_colour":"#ffffff",

??? "tooltip": { "mouse": 2}

}

水平柱状图的大部分属性与垂直柱状图一致,这里我们只讲解不同的地方,或者使用时的注意点。valuees数组里的每个元素都是一个对象{ "right": 4 }right表示向右延伸的单位值。x_axisy_axis的定义互换,并且y(y_axis)labels数组必须是倒序排列,如此才能对应上数据。水平柱状图应该总是设置tooltip:{mouse:2},这样可以纠正一个提示信息错误的问题,用户可以自己在不设置此属性时体会其问题。

5、蜡烛图

蜡烛图,即股票数据分析中常见的K线图,type = candle

蜡烛图与柱状图类似,区别仅仅是类型不同,values数组中可配置属性多了下面两个配置项。

属性

说明

height

线图中线的最高点,当chart类型为candle时有效。在tip属性中可以通过#height#来调用

low

K线图中线的最低点,当chart类型为candle时有效。在tip属性中可以通过#low#来调用。

这里我引用了open-flash-chart压缩包中/data-files/candle.txt作为测试数据。测试数据只需关注values部分的定义区别

"values" :?? [

??????? {"high":19,"top":14,"bottom":11,"low":10,"tip":"LOOK<br>#top#,#bottom# = #val#"},

??????? {"high":15,"top":10,"bottom":5,"low":0},

??????? {"high":7,"top":7,"bottom":4,"low":3},"top":3,"bottom":6,"low":2},"top":4,"low":2}

??????? ]

查看蜡烛图的展现效果。

6、堆积图

堆积图,或者称为堆叠柱形图,也是一种柱状图的派生图,type = bar_stack。与柱状图类似。堆积图的values设置于柱状图不同,且堆积图的chart对象中有一个扩展属性。KeysKeys内部用于定义堆积柱形的每一段的意义。定义内容会显示在text区域。

属性

说明

colour

颜色

text

描述该颜色的意义

font-size

字号

?

下面编辑一个stack.js文件,并替换index.jsp中原数据源配置。数据内容如下:

{

? "title":{

??? "text":"堆积图",

??? "style":"{font-size:16px;}"

? },

?

? "elements":[

??? {

????? "type": "bar_stack",

????? "keys": [

??????? {"colour":"#000000","text": "采购费","font-size": 10},

??????? {"colour":"#ff0000","text": "客户关系维护","font-size": 16},

??????? {"colour":"#00ff00","text": "租金","font-size": 14},

??????? {"colour":"#0000ff","text": "奖金","font-size": 12}

????? ],

????? "values" :[

?????????????????? [{"val":2.5,"colour":"#000000"},

?????????????????? ?? {"val":5,"colour":"#ff0000"}],

??????????????????? [{"val":2.5,

??????????????????? {"val":5,"colour":"#ff0000"},

??????????????????? {"val":2.5,"colour":"#00ff00"}],

??????????????????? null,

??????????????????? [{"val":5,"colour":"#0000ff"}]

?????????????????? ]

??? }

? ]

}

结果如下图

?

7、饼图

饼图在openflash chart中只有一种实现,type= pie

7.1、饼图的可配置属性

在基本的chart对象属性之外,饼图还包含以下与饼图的创建相关的属性:

属性

说明

colours

颜色数组,与values顺序对应,定义其在饼图中的颜色

start-angle

角度值,定义第一个图的起绘位置。默认值为90

animate

true/false或是对象数组。目前open flash chart实现了两个动画效果,一个是chart生成时的淡入淡出效果,一个是鼠标划过时的弹出效果。当animation的值为true/false时表示是否使用淡入淡出效果,也可以分别设置弹出效果和淡入淡出效果,如:

“animate”:[{“type”:”bounce”,”distance”:50},{“type”:”fade”}]

gradient-fill

true/false,是否有从圆心到向外的渐变效果

label-colour

label的颜色

radius

圆半径。如果radius的值大于0,饼图的半径将会是固定的,不会随着显示空间的变化而调整大小

no-labels

true/false,是否显示label

tip

在帮图的tip中,可以通过#val#,#total##percent#获取当前项值,所有项的总和,即当前项在总体中所占的比例

*Text,font-sizecolor属性在此无效。

使用如下数据构建一个饼图,尝试修改个参数值,理解参数的用途

{

? "title":{

??? "text":"Pie",

??? "style":"{font-size: 30px;}"

? },

?

? "elements":[

??? {

????? "type":????? "pie",

????? "colours":?? ["#d01f3c","#356aa0","#C79810","#999999"],

????? "alpha":???? 0.6,

????? "border":??? 2,

????? "start-angle": 35,

????? "animate":true,

????? "gradient-fill":true,

????? "label-colour":"#000000",

????? "no-labels":false,

????? "tip":"#percent#",

????? "values" :?? [2,2]

??? }

? ]

}

图如下:

?

7.2values数组中可配置属性

在饼图中,values数组中的每个对象代表一块圆饼区域。

属性

说明

value

圆角代表的数值

label

一个数据项的标签值

font-size

label的字体大小

label-colour

label的文字颜色

colour

圆角的颜色。此颜色设置将覆盖chart对象中colours的颜色设置。

tip

鼠标划过时的提示信息。用法与chart对象的tip设置相同。此tip设置将覆盖chart对象中的tip设置。

on-click

click时间的回调。此设置将覆盖chart对象中的on-click设置。

修改之前数据values数组中第一个数据。

{

???? "value":2,

???? "label":"(*^__^*) 嘻嘻……",

???? "font-size":16,

???? "tip":"O(∩_∩)O哈哈~",

?? ?"colour":"#ffffff",

?? ?"label-colour":"#000000"

}

?

?

8、线图

线图对应的type取值只有一个line。线图是通过一系列的点及其之间的连线组成的,其样式的设计主要是通过设置不同的点样式和线样式来达到的。

8.1、线图的可配置属性

在基本的chart对象属性之外,线图还包含以下与线图的创建相关的属性:

属性

说明

width

连线的宽度

dot-style

对象类型,定义点样式,有以下属性:

axis

left/right,设置图中的数据以左右哪个y轴为基准

type

点类型,可选的值有:star(星形),bow(蝴蝶型),anchor(多边形),dot(远点,默认隐藏),solid-dot(实心圆点),hollow-dot(空心圆点)

dot-size

点的大小(半径)

halo-size

点与线的过渡区(半径)

colour

颜色

tip

说明文字

alpha

不透明度

rotation

旋转角度,对anchor类型的点有效

sides

多边形的边数,对anchor类型的点有效

width

圆的轮廓的宽度,对hollow-dot类型的点有效。

line-style

对象类型,定义线的样式,有以下属性:

stype

先类型,可选的取值有:dash(虚线),solid(实线)

on

当线类型为dash时有效,与off配合使用,表明虚线每个实线段的长度

off

当先类型为dash时有效,与off配合使用,表示虚线每个空闲段的长度

使用下面的数据帮助我们理解这些属性。

{

? "y_legend":{

??? "text":?? "line",

??? "style": "{color: #736AFF;}"

? },

?

??? "elements":[

?????? {

?????????? "type":????? "line",

?????????? "colour":??? "#736AFF",

?????????? "width":???? 2,

?????????? "dot-style": {

????????????? "type":"anchor",

????????????? "colour":"#a44a80",

????????????? "dot-size": 6,

????????????? "halo-size":2,

????????????? "alpha":0.5,

????????????? "rotation":45,

????????????? "sides":8,

????????????? "tip":"#val#<br>#x_label#"

?????????? },

?????????? "line-style": {

????????????? "style":"dash",

????????????? "on":10,

????????????? "off":5

?????????? },

?????????? "values" :?? [

????????????? 1.5,1.69,1.88,2.06,2.21,2.34,2.43,2.48,2.49,2.47,

????????????? 2.40,2]

?????? }

??? ]

}

得到如下线图,请读者自己修改参数查看线图的变化。

???????? ?

?

8.2、线图的values数组中的对象的可配置属性

线图的values数组中的每一个对象代表线图中的一个点。

属性

说明

value

点在y轴上的取值。其x轴的取值为其在values数组中的顺序

colour

圆角的颜色。此颜色设置将覆盖chart对象中的颜色设置

tip

鼠标划过时的提示信息。用法与chart对象的tip设置相同。此tip设置将覆盖chart对象中的tip设置

on-click

click事件的回调。此设置将覆盖chart对象中的on-click设置

hollow

是否为空心

另外,这里也可以使用dot-style对象的属性来描述点的样式,并覆盖chart对象中全局的dot-style设置。

尝试替换上面数据中的第一个节点定义了解上述属性。

???????????????? {

????????????? ??? "value":1.5,

????????????????? "colour":"#e232b1",

????????????????? "tip":"~~~~",

????????????????? "hollow":false

????????????? }

?

?

9、雷达图

雷达图,也称为蜘蛛图,在openflash chart 中是一种特殊的线图。其type属性的取值是line,并配合radar_axis使用。

9.1radar_axis

radar_axis是一个一级属性,它仅适用于雷达图。下面是radar_axis的相关设置属性。

属性

说明

stroke

射线刻度轴的粗细,以像素值表示

max

radar轴显示范围的最大值

min

radar轴显示范围的最小值

steps

radar轴分段的步长,默认值为1

grid-colour

网格线的颜色

colour

radar轴线条的颜色

通过一个下面的配置数据了解这些属性:

{

? "title":{

??? "text":"radar 雷达图",

?

? "elements":[

??? {

????? "type":????? "line",

????? "width":???? 2,

????? "values" :?? [

??????? 4,9

????? ]

??? }

? ],

?

? "radar_axis": {

??? "max":???????? 10,

??? "min":???????? 1,

??? "stroke":????? 5,

??? "steps":?????? 2,

??? "colour":????? "#167840",

??? "grid-colour": "#E1AAF5"

? }

}

如图:

9.2、雷达图的可配置属性

在基本的chart对象属性之外,雷达图有一下属性

属性

说明

hoop

是否将所有点的连线形成一个闭环。在雷达图中有效

请读者自己验证。

10、散点图

10.1、散列图可选的type类型

散点图包括两种类型:type =scatter基本散列图和type =scatter_line:连线散点图

10.2散点图的可配置属性

在基本的chart对象属性之外,散点图还包含以下属性:

属性

说明

dot-style

对象类型,定一点的样式,参考线图中dot-style的属性

line-style

对象类型,定义线的样式,在chart类型为scatter_line时有效,参考线图的line-style的属性

stepgraph

生成阶跃图,取值可以是horizontal vertical或为空。当取值为空时,点与点之间画直连线

?

10.3散点图的values数组中可配置属性

散点图的values数组中的每一个对象代表散点图中的一个点。

属性

说明

x

点的x轴坐标值

y

点的y轴坐标值

value

点在y轴上的取值。其x轴的取值为其在values数组中的顺序(最好不用这种方法)

colour

圆角的颜色。此颜色设置将覆盖chart对象的tip设置想通。此tip设置将覆盖chart对象中的tip设置

tip

鼠标划过时的提示信息。用法与chart对象的tip设置相同。此tip设置将覆盖chart对象中的tip设置

这里还可以使用dot-style对象的属性来描述点的样式,并覆盖chart对象中全局的dot-style设置。

是用下面的数据实验:

{

?

? "elements":[

??? {

????? "type":????? "scatter_line",

????? "colour":??? "#FFB900",

????? "text":????? "Avg",

????? "font-size": 10,

??? ? /* BUG: if you comment this out no line is drawn? why? */

??? ? "dot-style": {"type":"solid-dot"},

??? ? "stepgraph":"horizontal",

????? "values" :?? [

???????????????????? {"x":-4,? "y":-5,? "tip":"HELLO" },

???????????????????? {"x":-4,? "y":-2,? "colour":"#FF0000" },? "y":1,?? "dot-size":4},

???????????????????? {"x":3,?? "y":3,?? "dot-size":5,"type": "hollow-dot"},

???????????????????? {"x":3.5,"y":3.5,"dot-size":6},

???????????????????? {"x":4.9,"y":4.9,"dot-size":7}

?????????????????? ]

??? }

?

? ],

?

? "x_axis":{

??? "offset":? false,

??? "min":???? -5,

??? "max":??? 5/*,

??? "labels":["mon","tue","wed","thur","fri","sat","sun"]*/

? },

?

? "y_axis":{

??? "min": -5,

??? "max": 5

? },

?

? "y_legend":{

??? "text":?? "Time of day",

??? "style": "{font-size: 20px; color: #736AFF;}"

? }

}

得到图像如:

连线散点图从效果上看与线图很相像,他们之间的区别在于,线图不能设置点的x坐标值,其坐标值是该点在数据序列中的位置。

11、区域图

区域图在openflash chart中有一种类型 area,这是一种线图的变体。其实我们要想实现一个区域图可以不是用type = area这种设置也可以达到目的。只要我们在 type = line的线图 chart内增加两个属性设置即可。区域图的其他设置请参照线图。

11.1区域图的可配置属性

属性

说明

fill

区域的颜色

fill-alpha

区域的透明度

?

读者可以通过下面的数据体会区域图。

{

? "title":{

??? "text":"Area Chart",

?

? "elements":[

??? {

????? "type":????? "area",

????? "colour":??? "#CC3399",

????? "fill":????? "#343399",

????? "fill-alpha": 0.5,

????? "text":????? "Page views",

????? "width":???? 3,

????? "dot-style": {

????????????? "type":"anchor",

????????????? "sides":3,

????????????? "width":1

?????? },

????? "values" : [

?????? 0,0.37,0.73,1.07,1.36,1.59,1.77,1.87,

?????? 1.89,1.85,1.72,1.53,1.28,0.97,0.63,

?????? {"value" :0.26,"type":"star","colour":"#FF0000","dot-size":10},

?????? -0.11,-0.48,-0.84,-1.16,-1.43,

?????? -1.65,-1.80,-1.88,-1.89,-1.82,-1.67,-1.46,-1.19,-0.88]

??? }

? ],

?

? "y_axis":{

??? "min": -2,

??? "max": 2

? }

}

得到的区域图如下:

读者也可以不是用type =area 而是用普通的line尝试上述属性。

12尾声

本篇文档为作者参考网络上的文档,博客,及open-flash-chart官网和open-flash-chart压缩包内例子总结得到,内容难免会有错误,有确实或者不人性的地方,敬请指正。在学习open-flash-chart过程中,open-flash-chart压缩包中data-files文件夹下的txt文件是已经编辑好的参数例子,非常有价值。

撰写人:ywx

EMAIL: ywxowen999@sina.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读