摘要:開始讓動起來我會直接貼部分代碼加少量解釋,建議先看下官方給的動態實時刷新示意圖循環次,線從圖表右側開始出現,軸會分為秒。
效果展示
社會你龍哥,人丑話不多,先來張圖!圖片傳不上去!!!可能公司限制了,大家自己幻想下吧
highcharts環境搭配由于技術現水平限制,需要用到兩個Highcharts,下面我會解釋,先上代碼
npm install --save highcharts npm install --save vue-highcharts
下載好后,在main.js頁面引入Vue-hightcharts;
import VueHighcharts from "vue-highcharts"; Vue.use(VueHighcharts)
接著在我們需要圖表的頁面加入以下代碼
var Highcharts = require("highcharts");
這里我將highcharts實例化,我需要用到highchats自帶的將時間格式化的方法。
Highcharts.setOptions({ global: { useUTC: false } });
tooltip: { enabled: true, formatter: function() { if(this.y <= 1) { return "" + this.series.name + "開始讓Highcharts動起來
" + Highcharts.dateFormat("%Y-%m-%d %H:%M:%S", this.x) + "
" + (this.y * 100).toFixed(2) + "%" } else { return "" + this.series.name + "
" + Highcharts.dateFormat("%Y-%m-%d %H:%M:%S", this.x) + "
" + this.y } } }
我會直接貼部分代碼加少量解釋,建議先看下官方給的動態實時刷新示意圖https://www.hcharts.cn/demo/h...
循環240次,線從圖表右側開始出現,X軸會分為240秒。
series: [{ type: "line", name: "line1", data: (function() { let data = [], time = Date.parse(new Date()), i; for(i = -239; i <= 0; i += 1) { data.push({ x: time + i * 1000, y: 0 }); } return data; }()), color: "#f8672c", lineWidth: 1 }]
我們用的socketcluster進行數據的廣播
var SocketCluster = require("socketcluster-client")
var socket = SocketCluster.connect({ port: 80, hostname: "xxx.xxx.xxx.xxx", path: "/xxx/xxx", secure: false });
這里會在代碼注釋里詳細說明
events: {
load: function() { // set up the updating of the chart each second var series1 = this.series[0]; var machId = _self.$route.params.id; //獲取路由傳過來的id var sub1 = socket.subscribe(`${machId}-counter-overview`); //sub1開始訂閱數據 sub1.watch(function(data1) { if(data1) { _self.cpudata = data1["system-cpu"]; _self.ramdata = data1["system-ram"]; } }); _self.timer.timer1=setInterval(function() { //這里用時間驅動,將數據添加到圖表中,cpudata沒有數據的話 //會一直保持水平運動。 _self.x = (new Date()).getTime(); series1.addPoint([_self.x, _self.cpudata], true, true, true); }, 1000) } } }
最后離開路由記得銷毀我們的定時器
beforeDestroy:function(){ clearInterval(this.timer.timer1); }
恩,就這么多~寫的不好,不明白的大家一起探討.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84434.html
摘要:與定時器的恩恩怨怨。這時候我這樣做的首先要把定時器填進數據中控制住定時器的聲明周期,否則它會煩死你在項目中的運用。 本次寫的項目是關于機器終端管理的,一開始使用的是最基本的bootstrap+jq+html以及一些小插件,后來由于項目有很多重復度很高的地方,而且老大要求擴展度要高,比如頭部,左邊欄,所以決定和另一名前端小伙伴使用框架進行項目重構(小項目啦),最終選擇了Vue+webpa...
以下為個人目前接觸到的前端技術,歡迎大家補充。 一、前端技術框架 1、Vue.js 官網:https://cn.vuejs.org/ Vue CLI:https://cli.vuejs.org/ 菜鳥教程:http://www.runoob.com/w3cnote... Nuxt.js:https://zh.nuxtjs.org/ 桌面應用Electron:https:...
摘要:渲染能力采用渲染除了對使用,一般來說,更適合繪制圖形元素數量非常大這一般是由數據量大導致的圖表如熱力圖地理坐標系或平行坐標系上的大規模線圖或散點圖等,也利于實現某些視覺特效如交通圖。 一.簡介 echartsecharts是百度公司前端開發的一個圖表庫,2013年發布第一版,主要采用canvas畫圖,目前版本3.8.4;完全免費; highcharthighcharts是國外的一家公司...
摘要:水平值,以像素計,在畫布上放置圖像的位置。規定要使用的圖像畫布或視頻。要使用的圖像的高度。實現縮放頻譜圖已經做好縮放操作,并把起始點和結束點傳遞給父組件,再有父組件傳遞給瀑布圖組件,動態修改的剪切屬性。 作者:codexu _ 廢話不多說,先上成品圖: showImg(https://segmentfault.com/img/remote/1460000020161522); 再來個迷...
閱讀 854·2021-11-24 10:44
閱讀 2790·2021-11-11 16:54
閱讀 3192·2021-10-08 10:21
閱讀 2096·2021-08-25 09:39
閱讀 2914·2019-08-30 15:56
閱讀 3466·2019-08-30 13:46
閱讀 3502·2019-08-23 18:09
閱讀 2089·2019-08-23 17:05