本文經過講解Highcharts生成一個簡單的3D柱狀圖實例來學習Highcharts的使用。javascript
JSP 頁面html
一、須要引入的js文件java
<script src="<%=basePath%>javascript/jquery-1.6.1.js"></script> <script src="<%=basePath%>javascript/wiassess/highCharts4.0.3/highcharts.js"></script> <script src="<%=basePath%>javascript/wiassess/highCharts4.0.3/highcharts-3d.js"></script> <script src="<%=basePath%>javascript/wiassess/highCharts4.0.3/modules/exporting.js"></script>
二、JavaScript jquery
<script type="text/javascript"> function Query(){ /* 省略tradTp,county,nature等參數的獲取過程 */ $.ajax({ type:"post", dataType:"json", data: {"project.tradTp":tradTp,"project.county":county,"project.projNature":nature,"project.replDtS":replDtS,"project.replDtE":replDtE,"project.chartTp":chartTp}, //參數列表 async:false, url:"<%=basePath%>wiassess/projectMgr/projectMgrAction!getProjectChart.action", success: function(result){ var jsonData=result; var xdata=jsonData.xdata; //xdata是後臺傳向前臺的參數,表明橫軸的數組 var data=jsonData.data; //data是後臺傳向前臺的參數,表明顯示數據,本實例顯示的是年用水量 var tiltleTm=jsonData.title; //tiltleTm 是後臺傳向前臺的參數,表明圖標的標題 var chart = new Highcharts.Chart({ chart: { renderTo: 'chartPro', //要顯示柱狀圖的div的id type: 'column', //圖表類型爲柱狀圖 margin: 75, options3d: { //這裏設置3D圖表的樣式 enabled: true, alpha: 10, beta: 0, depth: 50, viewDistance: 25 } }, title: { text: tiltleTm //顯示柱狀圖的標題 }, credits: {//不顯示highchart超連接 enabled: false }, plotOptions: { column: { depth: 10, value: 0, width: 1 } }, yAxis:{ //縱座標 title:{ text:'單位:立方米' } }, xAxis: { //橫座標 categories: xdata }, tooltip: { //提示格式 shared: true, useHTML: true, headerFormat: '<small>{point.key}</small><table>', pointFormat: '<tr><td style="color: {series.color}">{series.name}: </td>' + '<td style="text-align: right"><b>{point.y} 立方米</b></td></tr>', footerFormat: '</table>', valueDecimals: 2 }, series: [{ name:'取水總量', data: data }] }); }, error: function(){ alert('獲取失敗!'); } }); } </script>
三、jspajax
<div id="chartPro" style=" width: 66%; height: 400px; " ></div>
後臺傳數據----拼接jsonjson
action方法getProjectChart()數組
/** * 得到項目統計圖 * @return * @throws Exception */ public String getProjectChart() throws Exception{ //省略參數獲取過程
//須要獲取的參數
//一、title:titleStr----柱狀圖的標題,StringBuffer類型,將其值傳入前臺
//二、data:sumWaterByCounty-----柱狀圖的數據列,是一個數組
//三、xdata:xdata-------橫座標軸的數據,也是一個數組
/** * 輸出統計的字符串轉化成JSON,返回JSON * */ StringBuilder sb=new StringBuilder(); sb.append("{\"success\":true,"); sb.append("\"title\":\""+titleStr.toString()+"\","); sb.append("\"data\":"+JSONArray.fromObject(sumWaterByCounty)+",\"xdata\":"+JSONArray.fromObject(xdata)+""); sb.append("}"); jsonStr=sb.toString(); return jsonStr;//返回拼接的JSON,供前臺獲取 }