上篇文章简单对FushionCharts进行了介绍,这篇文章通过具体例子来介绍FushionCharts使用XML和JSON数据源的方式。
使用FushionCharts的步骤很简单,只需要将使用的swf文件和fushionCharts.js拷贝到项目中即可,不需要任何jar包.每个swf文件对应一种图样,例如2D柱形图和3D柱形图分别对应了两个swf文件.
FushionCharts的使用原理很简单,每种图例都已经做好了原型,我们要做的就是传入原型对应的数据,然后调用FushionCharts.js的方法进行创建即可.
看具体的jsp:
[java] view plaincopy
- <%@ page language=”java” contentType=”text/html; charset=GB18030″
- pageEncoding=”GB18030″ %>
- <html>
- <head>
- <base href=”<%=basePath%>”>
- <meta http-equiv=”Content-Type” content=”text/html; charset=GBK”>
- <title></title>
- <link href=”js/style.css” rel=”stylesheet” type=”text/css” />
- <link href=”js/prettify.css” rel=”stylesheet” type=”text/css” />
- <script type=”text/javascript” src=”js/fusionCharts/FusionCharts.js”></script>
- <script type=”text/javascript” src=”js/jquery-1.4.2.min.js”></script>
- <script type=”text/javascript” src=”js/prettify.js”></script>
- <script type=”text/javascript” src=”js/json2.js”></script>
- </head>
- <body>
- <table width=”100%”>
- <tr>
- <td><div id=”2DCoulmn” align=”center”>2D柱形图</div></td>
- <td><div id=”MSLine” align=”center”>多维线形图</div></td>
- </tr>
- <tr>
- <td><div id=”AngularGauge” align=”center”>仪表盘</div></td>
- </tr>
- </table>
- <script type=”text/javascript”>
- //使用XMLUrl方式,需要将写好的数据XML文件放到指定位置
- var MS2dColumn = new FusionCharts(“flex/fusioncharts/MSColumn2D.swf”, ”MS2DColumnID”, ”460″, ”350″, ”0″, ”1″);
- MS2dColumn.setXMLUrl(“../flex/data/XML/Col2D1.xml”);
- //绑定到指定控件
- MS2dColumn.render(“2DCoulmn”);
- //使用json数据
- var MSLine = new FusionCharts(“flex/fusioncharts/MSLine.swf”, ”MSLineID”, ”460″, ”350″, ”0″, ”1″); MSLine.setJSONData({
- ”chart”:{
- ”caption”:”Business Results 2005 v 2006″,
- ”xaxisname”:”Month”,
- ”yaxisname”:”Revenue”,
- ”showvalues”:”0″,
- ”numberprefix”:”$” },
- ”categories”:[{
- "category":[
- { "label":"Jan" },
- { "label":"Feb" },
- { "label":"Mar" },
- { "label":"Apr" },
- { "label":"May" },
- { "label":"Jun" },
- { "label":"Jul" },
- { "label":"Aug" },
- { "label":"Sep" },
- { "label":"Oct" },
- { "label":"Nov" },
- { "label":"Dec" }]
- }
- ],
- ”dataset”:[
- {
- "seriesname":"2006",
- "data":[
- { "value":"27400" },
- { "value":"29800" },
- { "value":"25800" },
- { "value":"26800" },
- { "value":"29600" },
- { "value":"32600" },
- { "value":"31800" },
- { "value":"36700" },
- { "value":"29700" },
- { "value":"31900" },
- { "value":"34800" },
- { "value":"24800" } ] },
- { ”seriesname”:”2007″,
- ”data”:[
- { "value":"27900" },
- { "value":"29800" },
- { "value":"15800" },
- { "value":"24800" },
- { "value":"19600" },
- { "value":"32600" },
- { "value":"35800" },
- { "value":"31700" },
- { "value":"39700" },
- { "value":"51900" },
- { "value":"14800" },
- { "value":"20800" } ] },
- { ”seriesname”:”2005″,
- ”data”:[{ "value":"10000" },
- { "value":"11500" },
- { "value":"12500" },
- { "value":"15000" },
- { "value":"11000" },
- { "value":"9800" },
- { "value":"11800" },
- { "value":"19700" },
- { "value":"21700" },
- { "value":"21900" },
- { "value":"22900" },
- { "value":"20800" } ] } ],
- ”trendlines”:{
- ”line”:[{ "startvalue":"26000",
- "color":"91C728",
- "displayvalue":"Target",
- "showontop":"1"
- }]
- },
- ”styles”:[{
- "definition":[{
- "style":[{ "name":"CanvasAnim",
- "type":"animation",
- "param":"_xScale",
- "start":"0",
- "duration":"1"
- }]
- }],
- ”application”:[{
- "apply":[{ "toobject":"Canvas",
- "styles":"CanvasAnim"
- }]
- }]
- }]
- });
- //使用xml数据
- var AngularGauge = new FusionCharts(“<%=request.getContextPath()%>/flex/fusioncharts/AngularGauge.swf”, ”仪表盘”, ”300″, ”300″, ”0″, ”1″);
- var xmlDate= ”<chart bgAlpha=’0′ bgColor=’000000′ lowerLimit=’0′ upperLimit=’100′ numberSuffix=’%25′ showBorder=’0′ basefontColor=’000000′ chartTopMargin=’25′ chartBottomMargin=’25′ chartLeftMargin=’25′ chartRightMargin=’25′ toolTipBgColor=’80A905′ gaugeFillMix=’{dark-10},FFFFFF,{dark-10}’ gaugeFillRatio=’3′> <colorRange> <color minValue=’0′ maxValue=’45′ code=’8BBA00′/> <color minValue=’45′ maxValue=’80′ code=’F6BD0F’/> <color minValue=’80′ maxValue=’100′ code=’FF654F’/></colorRange><dials><dial value=’50′ rearExtension=’10′/></dials><trendpoints><point value=’50′ displayValue=’Average’ fontcolor=’FF4400′ useMarker=’1′ dashed=’1′ dashLen=’2′ dashGap=’2′ valueInside=’1′ /></trendpoints><annotations><annotationGroup id=’Grp1′ showBelow=’1′ ><annotation type=’rectangle’ x=’0′ y=’0′ toX=’445′ toY=’225′ radius=’0′ color=’E6F7F7′ showBorder=’0′ /></annotationGroup></annotations><styles> <definition> <style name=’RectShadow’ type=’shadow’ strength=’3′/> </definition><application><apply toObject=’Grp1′ styles=’RectShadow’ /> </application> </styles> </chart> ”;
- AngularGauge.setXMLData(xmlDate);
- AngularGauge.render(“AngularGauge”);
- </script>
- </body>
- </html>
FusionCharts支持直接使用文件数据,也支持直接将数据写到文件里,可根据自己数据的情况来选择合适的方式.
比较常用的还是JSON方式,因为后台从数据库取出的数据LIST,可以直接转为JSON格式传到前台界面,然后使用setJSONData推送到Chart中,这里就不详细介绍.具体使用者有问题可以与我交流.