1. 程式人生 > 程式設計 >JS highcharts動態柱狀圖原理及實現

JS highcharts動態柱狀圖原理及實現

實現一個柱狀圖,這個柱狀圖的高度在不停的重新整理,效果如下:

JS highcharts動態柱狀圖原理及實現

官網是沒有動態重新整理的示例的,由於需要我查看了其原始碼,並根據之前示例做出了動態柱狀圖的效果,希望對同學們有用!

看一下程式碼:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
	<head>
		<title>Highcharts Example</title>
		<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
		<script language="javascript" type="text/javascript" src="highcharts.js"></script>
		<script language="javascript" type="text/javascript" src="exporting.js"></script>
<script type="text/javascript">
var chart;
$(document).ready(function() {
	chart = new Highcharts.Chart({
		chart: {
			renderTo: 'container',type: 'column',events: {
       load: function() {  
         // set up the updating of the chart each second
         var series = this.series[0];
         setInterval(function() {
          	 var data = [];
          	 data.push(['Apples',Math.random()]);
          	 data.push(['Oranges',Math.random()]);
          	 data.push(['Pears',Math.random()]);
          	 data.push(['Grapes',Math.random()]);
          	 data.push(['Bananas',Math.random()]);
           series.setData(data);
         },2000);
       }
     }
		},title: {
			text: 'Java小強制作'
		},xAxis: {
			categories: ['Apples','Oranges','Pears','Grapes','Bananas']
		},yAxis: {
			min: 0,title: {
				text: '當前產值'
			},stackLabels: {
				enabled: true,style: {
					fontWeight: 'bold',color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
				}
			}
		},legend: {
			align: 'right',x: -100,verticalAlign: 'top',y: 20,floating: true,backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',borderColor: '#CCC',borderWidth: 1,shadow: false
		},tooltip: {
			formatter: function() {
				return ''+ this.x +'<br/>'+
					this.series.name +': '+ this.y +'<br/>'+
					'Total: '+ this.point.stackTotal;
			}
		},plotOptions: {
			column: {
				stacking: 'normal',dataLabels: {
					enabled: true,color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
				}
			}
		},series: [{
			name: 'John',data: [5,3,4,7,2]
		}]
	});
});
</script>
	</head>
	<body>
<div id="container" style="width: 800px;height: 400px"></div>
	</body>
</html>

同樣,繪製這個圖需要的也是雙維陣列,我嘗試了幾個方法,使用 series.setData(data); 可是實現資料的重新指定!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。