FusionCharts使用XML和JSON数据源示例



FusionCharts使用XML和JSON数据源示例

上篇文章简单对FushionCharts进行了介绍,这篇文章通过具体例子来介绍FushionCharts使用XML和JSON数据源的方式。

使用FushionCharts的步骤很简单,只需要将使用的swf文件和fushionCharts.js拷贝到项目中即可,不需要任何jar包.每个swf文件对应一种图样,例如2D柱形图和3D柱形图分别对应了两个swf文件.

FushionCharts的使用原理很简单,每种图例都已经做好了原型,我们要做的就是传入原型对应的数据,然后调用FushionCharts.js的方法进行创建即可.

看具体的jsp:

  1. <%@ page language=”java” contentType=”text/html; charset=GB18030″
  2.     pageEncoding=”GB18030″ %>
  3. <html>
  4. <head>
  5.    <base href=”<%=basePath%>”>
  6.         <meta http-equiv=”Content-Type” content=”text/html; charset=GBK”>
  7.         <title></title>
  8.         <link href=”js/style.css” rel=”stylesheet” type=”text/css” />
  9.         <link href=”js/prettify.css” rel=”stylesheet” type=”text/css” />
  10.         <script type=”text/javascript” src=”js/fusionCharts/FusionCharts.js”></script>
  11.         <script type=”text/javascript” src=”js/jquery-1.4.2.min.js”></script>
  12.         <script type=”text/javascript” src=”js/prettify.js”></script>
  13.         <script type=”text/javascript” src=”js/json2.js”></script>
  14. </head>
  15. <body>
  16.         <table width=”100%”>
  17.             <tr>
  18.                 <td><div id=”2DCoulmn” align=”center”>2D柱形图</div></td>
  19.                 <td><div id=”MSLine” align=”center”>多维线形图</div></td>
  20.             </tr>
  21.             <tr>
  22.                 <td><div id=”AngularGauge” align=”center”>仪表盘</div></td>
  23.             </tr>
  24.         </table>
  25.         <script type=”text/javascript”>
  26.     //使用XMLUrl方式,需要将写好的数据XML文件放到指定位置
  27.         var  MS2dColumn = new FusionCharts(“flex/fusioncharts/MSColumn2D.swf”, ”MS2DColumnID”, ”460″, ”350″, ”0″, ”1″);
  28.         MS2dColumn.setXMLUrl(“../flex/data/XML/Col2D1.xml”);
  29.     //绑定到指定控件
  30.         MS2dColumn.render(“2DCoulmn”);
  31.         //使用json数据
  32.         var  MSLine = new FusionCharts(“flex/fusioncharts/MSLine.swf”, ”MSLineID”, ”460″, ”350″, ”0″, ”1″);   MSLine.setJSONData({
  33.              ”chart”:{
  34.                     ”caption”:”Business Results 2005 v 2006″,
  35.                     ”xaxisname”:”Month”,
  36.                     ”yaxisname”:”Revenue”,
  37.                     ”showvalues”:”0″,
  38.                     ”numberprefix”:”$”  },
  39.              ”categories”:[{
  40.                  "category":[
  41.                                  {          "label":"Jan"        },
  42.                                  {          "label":"Feb"        },
  43.                                  {          "label":"Mar"        },
  44.                                  {          "label":"Apr"        },
  45.                                  {          "label":"May"        },
  46.                                  {          "label":"Jun"        },
  47.                                  {          "label":"Jul"        },
  48.                                  {          "label":"Aug"        },
  49.                                  {          "label":"Sep"        },
  50.                                  {          "label":"Oct"        },
  51.                                  {          "label":"Nov"        },
  52.                                  {          "label":"Dec"        }]
  53.                }
  54.                ],
  55.              ”dataset”:[
  56.                           {
  57.                               "seriesname":"2006",
  58.                               "data":[
  59.                                      {          "value":"27400"        },
  60.                                      {          "value":"29800"        },
  61.                                      {          "value":"25800"        },
  62.                                      {          "value":"26800"        },
  63.                                      {          "value":"29600"        },
  64.                                      {          "value":"32600"        },
  65.                                      {          "value":"31800"        },
  66.                                      {          "value":"36700"        },
  67.                                      {          "value":"29700"        },
  68.                                      {          "value":"31900"        },
  69.                                      {          "value":"34800"        },
  70.                                      {          "value":"24800"        }      ]    },
  71.                            {   ”seriesname”:”2007″,
  72.                                ”data”:[
  73.                                      {          "value":"27900"        },
  74.                                      {          "value":"29800"        },
  75.                                      {          "value":"15800"        },
  76.                                      {          "value":"24800"        },
  77.                                      {          "value":"19600"        },
  78.                                      {          "value":"32600"        },
  79.                                      {          "value":"35800"        },
  80.                                      {          "value":"31700"        },
  81.                                      {          "value":"39700"        },
  82.                                      {          "value":"51900"        },
  83.                                      {          "value":"14800"        },
  84.                                      {          "value":"20800"        }      ]    },
  85.                            {   ”seriesname”:”2005″,
  86.                                ”data”:[{        "value":"10000"        },
  87.                                      {          "value":"11500"        },
  88.                                      {          "value":"12500"        },
  89.                                      {          "value":"15000"        },
  90.                                      {          "value":"11000"        },
  91.                                      {          "value":"9800"         },
  92.                                      {          "value":"11800"        },
  93.                                      {          "value":"19700"        },
  94.                                      {          "value":"21700"        },
  95.                                      {          "value":"21900"        },
  96.                                      {          "value":"22900"        },
  97.                                      {          "value":"20800"        }      ]    }  ],
  98.                     ”trendlines”:{
  99.                        ”line”:[{        "startvalue":"26000",
  100.                                         "color":"91C728",
  101.                                         "displayvalue":"Target",
  102.                                         "showontop":"1"
  103.                        }]
  104.                      },
  105.                     ”styles”:[{
  106.                        "definition":[{
  107.                                "style":[{          "name":"CanvasAnim",
  108.                                                    "type":"animation",
  109.                                                    "param":"_xScale",
  110.                                                    "start":"0",
  111.                                                    "duration":"1"
  112.                                         }]
  113.                        }],
  114.                     ”application”:[{
  115.                                "apply":[{         "toobject":"Canvas",
  116.                                                   "styles":"CanvasAnim"
  117.                                          }]
  118.                        }]
  119.                      }]
  120.             });
  121.     //使用xml数据
  122.     var AngularGauge = new FusionCharts(“<%=request.getContextPath()%>/flex/fusioncharts/AngularGauge.swf”, ”仪表盘”, ”300″, ”300″, ”0″, ”1″);
  123.     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> ”;
  124.     AngularGauge.setXMLData(xmlDate);
  125.     AngularGauge.render(“AngularGauge”);
  126.       </script>
  127. </body>
  128. </html>

FusionCharts支持直接使用文件数据,也支持直接将数据写到文件里,可根据自己数据的情况来选择合适的方式.

 

比较常用的还是JSON方式,因为后台从数据库取出的数据LIST,可以直接转为JSON格式传到前台界面,然后使用setJSONData推送到Chart中,这里就不详细介绍.具体使用者有问题可以与我交流.