JS highcharts實(shí)現(xiàn)動(dòng)態(tài)曲線代碼示例
Highcharts是一個(gè)制作圖表的純Javascript類庫(kù),
主要特性如下:
兼容性:兼容當(dāng)今所有的瀏覽器,包括iPhone、IE和火狐等等;
對(duì)個(gè)人用戶完全免費(fèi);
純JS,無(wú)BS;
支持大部分的圖表類型:直線圖,曲線圖、區(qū)域圖、區(qū)域曲線圖、柱狀圖、餅裝圖、散布圖;
跨語(yǔ)言:不管是PHP、.net還是Java都可以使用,它只需要三個(gè)文件:一個(gè)是
Highcharts的核心文件highcharts.js,還有a canvas emulator for IE和Jquery類庫(kù)或者M(jìn)ooTools類庫(kù);
提示功能:鼠標(biāo)移動(dòng)到圖表的某一點(diǎn)上有提示信息;
放大功能:選中圖表部分放大,近距離觀察圖表;
易用性:無(wú)需要特殊的開發(fā)技能,只需要設(shè)置一下選項(xiàng)就可以制作適合自己的圖表;
時(shí)間軸:可以精確到毫秒;
其官網(wǎng)網(wǎng)站為:http://www.highcharts.com/ !
里面有他們的例子和參考代碼,可以參考著實(shí)現(xiàn)自己的應(yīng)用,如果你做的是靜態(tài)的圖形展示,那么使用是非常簡(jiǎn)單的!
參照官網(wǎng)的一個(gè)例子,我來(lái)實(shí)現(xiàn)一個(gè)動(dòng)態(tài)曲線的應(yīng)用:
效果如下:
這個(gè)曲線是動(dòng)態(tài)的,他的官網(wǎng)效果地址:http://www.highcharts.com/demo/dynamic-update !
我把他應(yīng)用到JSP中,代碼如下:
<%@ page language='java' import='java.util.*' pageEncoding='UTF-8'%><html><head><title>Highcharts Example</title><script language='javascript' type='text/javascript' src='http://m.lshqa.cn/bcjs/jquery.min.js'></script><script language='javascript' type='text/javascript' src='http://m.lshqa.cn/bcjs/highcharts.js'></script><script language='javascript' type='text/javascript' src='http://m.lshqa.cn/bcjs/exporting.js'></script><script type='text/javascript'>$(document).ready(function() {Highcharts.setOptions({global: {useUTC: false}});var chart;chart = new Highcharts.Chart({chart: {renderTo: ’container’,type: ’spline’,marginRight: 10,events: {load: function() {// set up the updating of the chart each secondvar series = this.series[0];setInterval(function() {var x = (new Date()).getTime(), // current timey = Math.random();series.addPoint([x, y], true, true);}, 1000);}}},title: {text: ’<b>Java小強(qiáng)制作</b>’},xAxis: {type: ’datetime’,tickPixelInterval: 150},yAxis: {title: {text: ’單位:M’},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 datavar 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 style='width: 800px;height: 400px'></div></body></html>
DIV的樣式可以自己調(diào)節(jié),需要關(guān)注的是兩個(gè)點(diǎn):
他需要的數(shù)據(jù)格式是雙維數(shù)組
數(shù)據(jù)的更新是因?yàn)?chart 對(duì)象里面有一個(gè) events 屬性,里面定義方法使用 addPoint 實(shí)現(xiàn)數(shù)據(jù)點(diǎn)的增加和刷新!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python的Tqdm模塊實(shí)現(xiàn)進(jìn)度條配置2. react axios 跨域訪問(wèn)一個(gè)或多個(gè)域名問(wèn)題3. WML語(yǔ)言的基本情況4. CSS代碼檢查工具stylelint的使用方法詳解5. 利用CSS制作3D動(dòng)畫6. Python 多線程之threading 模塊的使用7. 刪除docker里建立容器的操作方法8. .NET6打包部署到Windows Service的全過(guò)程9. ThinkPHP5 通過(guò)ajax插入圖片并實(shí)時(shí)顯示(完整代碼)10. Properties 持久的屬性集的實(shí)例詳解
