リアルタイムでデータを更新するjQueryグラフプラグイン

6714 ワード

昨日1つの招待状を见て、とても兴味を持って今日手をつけて変えて実现して、分かち合って、大体効果は以下の通りです:
上図の説明:
1.曲線はダイナミックで、断面図の原因は体現できません.ご了承ください.
2.マウスでカーブを移動すると、より詳細な情報の小さいサスペンションボックスがあり、スクリーンショットは表示されません.
3.曲線のデータは乱数シミュレーションを採用し、後のコード赤色部分に説明があり、実際の項目はデータを動的にバインドすることができる.
4.主にhighchartsという名前で使用する.jsプラグイン、興味のある友达はネットで調べてダウンロードすることができます;
新しいHTMLページを作成します.コードは次のとおりです.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<TITLE>       jQuery    DEMO  </TITLE>

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="highcharts.js"></script>

<script type="text/javascript">
$(function () {                                                                     
$(document).ready(function() {                                                  
	Highcharts.setOptions({                                                     
		global: {                                                               
			useUTC: false                                                       
		}                                                                       
	});                                                                         
																				
	var chart;                                                                  
	$('#container').highcharts({                                                
		chart: {                                                                
			type: 'spline',                                                     
			animation: Highcharts.svg, // don't animate in old IE               
			marginRight: 10,                                                    
			events: {                                                           
				load: function() {                                              
																				
					// set up the updating of the chart each second             
					var series = this.series[0];                                
					setInterval(function() {                                    
						var x = (new Date()).getTime(), // current time         
							y = Math.random();                                  
						series.addPoint([x, y], true, true);                    
					}, 1000);                                                   
				}                                                               
			}                                                                   
		},                                                                      
		title: {                                                                
			text: 'CPU     --1 '                                            
		},                                                                      
		xAxis: {                                                                
			type: 'datetime',                                                   
			tickPixelInterval: 100                                              
		},                                                                      
		yAxis: {                                                                
			title: {                                                            
				text: 'CPU     --1 '                                                   
			},                                                                  
			plotLines: [{                                                       
				value: 0,                                                       
				width: 1,                                                       
				color: '#808080'                                                
			}]                                                                  
		},                                                                      
		tooltip: {                                                              
			formatter: function() {                                             
					return '<b>'+ this.series.name +'</b><br/>'+                
					Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
					Highcharts.numberFormat(this.y, 2);                         
			}                                                                   
		},                                                                      
		legend: {                                                               
			enabled: false                                                      
		},                                                                      
		exporting: {                                                            
			enabled: false                                                      
		},                                                                      
		series: [{                                                              
			name: 'Random data',                                                
			data: (function() {                                                 
				// generate an array of random data                             
				var data = [],                                                  
					time = (new Date()).getTime(),                              
					i;                                                          
																				
				for (i = -19; i <= 0; i++) {                                    
					data.push({                                                 
						x: time + i * 1000,                                     
						y: Math.random()                                        
					});                                                         
				}                                                               
				return data;                                                    
			})()                                                                
		}]                                                                      
	});                                                                         
});                                                                             
																				
});               
</script>
</HEAD>
<BODY>
<div id="container" style="width:700px;height:400px;margin:0 auto;"></div>
<div style="text-align:center;clear:both;">
</div>
</BODY>
</HTML>

具体的な使い方は、詳しく書かれたブログを参考にすることができます.アドレス:クリックしてリンクを開く