highcharts 高级应用—动态柱状图的实现

来源:互联网 发布:nba2k16博尔特捏脸数据 编辑:程序博客网 时间:2024/05/24 03:41

废话不再多说!

 

实现一个柱状图,这个柱状图的高度在不停的刷新,效果如下:

 

官网是没有动态刷新的示例的,由于需要我查看了其源码,并根据之前示例做出了动态柱状图的效果,希望对同学们有用!

 

看一下代码:

Java代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <html>  
  3.     <head>  
  4.         <title>Highcharts Example</title>  
  5.         <script language="javascript" type="text/javascript" src="jquery.min.js"></script>  
  6.         <script language="javascript" type="text/javascript" src="highcharts.js"></script>  
  7.         <script language="javascript" type="text/javascript" src="exporting.js"></script>  
  8. <script type="text/javascript">  
  9. var chart;  
  10. $(document).ready(function() {  
  11.     chart = new Highcharts.Chart({  
  12.         chart: {  
  13.             renderTo: 'container',  
  14.             type: 'column',  
  15.             events: {  
  16.               load: function() {      
  17.                   // set up the updating of the chart each second  
  18.                   var series = this.series[0];  
  19.                   setInterval(function() {  
  20.                       var data = [];  
  21.                       data.push(['Apples', Math.random()]);  
  22.                       data.push(['Oranges', Math.random()]);  
  23.                       data.push(['Pears', Math.random()]);  
  24.                       data.push(['Grapes', Math.random()]);  
  25.                       data.push(['Bananas', Math.random()]);  
  26.                       series.setData(data);  
  27.                   }, 2000);  
  28.               }  
  29.           }  
  30.         },  
  31.         title: {  
  32.             text: '<b>Java小强制作</b>'  
  33.         },  
  34.         xAxis: {  
  35.             categories: ['Apples''Oranges''Pears''Grapes''Bananas']  
  36.         },  
  37.         yAxis: {  
  38.             min: 0,  
  39.             title: {  
  40.                 text: '当前产值'  
  41.             },  
  42.             stackLabels: {  
  43.                 enabled: true,  
  44.                 style: {  
  45.                     fontWeight: 'bold',  
  46.                     color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'  
  47.                 }  
  48.             }  
  49.         },  
  50.         legend: {  
  51.             align: 'right',  
  52.             x: -100,  
  53.             verticalAlign: 'top',  
  54.             y: 20,  
  55.             floating: true,  
  56.             backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',  
  57.             borderColor: '#CCC',  
  58.             borderWidth: 1,  
  59.             shadow: false  
  60.         },  
  61.         tooltip: {  
  62.             formatter: function() {  
  63.                 return '<b>'this.x +'</b><br/>'+  
  64.                     this.series.name +': 'this.y +'<br/>'+  
  65.                     'Total: 'this.point.stackTotal;  
  66.             }  
  67.         },  
  68.         plotOptions: {  
  69.             column: {  
  70.                 stacking: 'normal',  
  71.                 dataLabels: {  
  72.                     enabled: true,  
  73.                     color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'  
  74.                 }  
  75.             }  
  76.         },  
  77.         series: [{  
  78.             name: 'John',  
  79.             data: [53472]  
  80.         }]  
  81.     });  
  82. });  
  83. </script>  
  84.     </head>  
  85.     <body>  
  86. <div id="container" style="width: 800px;height: 400px"></div>  
  87.     </body>  
  88. </html>  

 

同样,绘制这个图需要的也是双维数组,我尝试了几个方法,使用 series.setData(data); 可是实现数据的重新指定!

在highcharts.js文件中你可以查看他的一些方法!

<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* csdn 横中 */google_ad_slot = "7877933139";google_ad_width = 468;google_ad_height = 60;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>