整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Highcharts 動態(tài)圖

          Highcharts 動態(tài)圖

          們將為大家介紹 Highcharts 的動態(tài)圖。

          我們在前面已經(jīng)了解了 Highcharts 配置語法。接下來讓我們來看下 Highcharts 的其他配置。


          每秒更新曲線圖

          chart.events

          chart.event 屬性中添加 load 方法(圖表加載事件)。在 1000 毫秒內(nèi)隨機產(chǎn)生數(shù)據(jù)點并生成圖表。

          chart: {
           events: {
           load: function () {
           // 圖表每秒更新一次
           var series=this.series[0];
           setInterval(function () {
           var x=(new Date()).getTime(), // 當期時間
           y=Math.random();
           series.addPoint([x, y], true, true);
           }, 1000);
           }
           }}

          實例

          文件名:highcharts_dynamic_spline.htm

          <html><head><meta charset="UTF-8" /><title>Highcharts 教程 | 菜鳥教程(runoob.com)</title><script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script src="http://code.highcharts.com/highcharts.js"></script></head><body><div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div><script language="JavaScript">$(document).ready(function() { 
           var chart={
           type: 'spline', animation: Highcharts.svg, // don't animate in IE < IE 10.
           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);
           }
           }
           };
           var title={
           text: 'Live random data' 
           }; 
           var xAxis={
           type: 'datetime',
           tickPixelInterval: 150
           };
           var yAxis={
           title: {
           text: 'Value'
           },
           plotLines: [{
           value: 0,
           width: 1,
           color: '#808080'
           }]
           };
           var 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);
           }
           };
           var plotOptions={
           area: {
           pointStart: 1940,
           marker: {
           enabled: false,
           symbol: 'circle',
           radius: 2,
           states: {
           hover: {
           enabled: true
           }
           }
           }
           }
           };
           var legend={
           enabled: false
           };
           var exporting={
           enabled: false
           };
           var 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 +=1) {
           data.push({
           x: time + i * 1000,
           y: Math.random()
           });
           }
           return data;
           }()) 
           }]; 
           var json={}; 
           json.chart=chart;
           json.title=title; 
           json.tooltip=tooltip;
           json.xAxis=xAxis;
           json.yAxis=yAxis;
           json.legend=legend; 
           json.exporting=exporting; 
           json.series=series;
           json.plotOptions=plotOptions;
           Highcharts.setOptions({
           global: {
           useUTC: false
           }
           });
           $('#container').highcharts(json);
           });</script></body></html>

          Highcharts 餅圖


          通過點擊添加數(shù)據(jù)

          chart.events

          在 chart.event 屬性中添加 click 方法(整個圖表的繪圖區(qū)上所發(fā)生的點擊事件)。該方法在圖表繪圖區(qū)上發(fā)生點擊時會添加新的數(shù)據(jù)點。

          chart: {
           events: {
           click: function (e) {
           // 獲取點擊坐標和數(shù)據(jù)項
           var x=e.xAxis[0].value,
           y=e.yAxis[0].value,
           series=this.series[0];
           // 添加點擊的坐標
           series.addPoint([x, y]);
           }
           }}

          實例

          文件名:highcharts_dynamic_click.htm

          能:

          • modbus讀取數(shù)據(jù)
          • 數(shù)據(jù)寫入mysql數(shù)據(jù)庫中
          • 查詢設定時間段的數(shù)據(jù)
          • 數(shù)據(jù)顯示為曲線

          Node-RED界面:

          UI界面:

          mysql數(shù)據(jù)庫結(jié)構(gòu):

          資源地址:han-link.cn/4165.html

          #妙筆生花創(chuàng)作挑戰(zhàn)#

          挑戰(zhàn)30天在頭條寫日記#

          快速上手

          獲取 Apache ECharts

          Apache ECharts 支持多種下載方式,可以在下一篇教程安裝中查看所有方式。這里,我們以從 jsDelivr CDN 上獲取為例,介紹如何快速安裝。

          在 https://www.jsdelivr.com/package/npm/echarts 選擇 dist/echarts.js,點擊并保存為 echarts.js 文件。

          引入 Apache ECharts

          在剛才保存 echarts.js 的目錄新建一個 index.html 文件,內(nèi)容如下:

          <!DOCTYPE html>
          <html>
            <head>
              <meta charset="utf-8" />
              <!-- 引入剛剛下載的 ECharts 文件 -->
              <script src="echarts.js"></script>
            </head>
          </html>

          打開這個 index.html,你會看到一片空白。但是不要擔心,打開控制臺確認沒有報錯信息,就可以進行下一步。

          繪制一個簡單的圖表

          在繪圖前我們需要為 ECharts 準備一個定義了高寬的 DOM 容器。在剛才的例子 </head> 之后,添加:

          <body>
            <!-- 為 ECharts 準備一個定義了寬高的 DOM -->
            <div id="main" style="width: 600px;height:400px;"></div>
          </body>

          然后就可以通過 echarts.init 方法初始化一個 echarts 實例并通過 setOption 方法生成一個簡單的柱狀圖,下面是完整代碼。

          <!DOCTYPE html>
          <html>
            <head>
              <meta charset="utf-8" />
              <title>ECharts</title>
              <!-- 引入剛剛下載的 ECharts 文件 -->
              <script src="echarts.js"></script>
            </head>
            <body>
              <!-- 為 ECharts 準備一個定義了寬高的 DOM -->
              <div id="main" style="width: 600px;height:400px;"></div>
              <script type="text/javascript">
                // 基于準備好的dom,初始化echarts實例
                var myChart=echarts.init(document.getElementById('main'));
          
                // 指定圖表的配置項和數(shù)據(jù)
                var option={
                  title: {
                    text: 'ECharts 入門示例'
                  },
                  tooltip: {},
                  legend: {
                    data: ['銷量']
                  },
                  xAxis: {
                    data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']
                  },
                  yAxis: {},
                  series: [
                    {
                      name: '銷量',
                      type: 'bar',
                      data: [5, 20, 36, 10, 10, 20]
                    }
                  ]
                };
          
                // 使用剛指定的配置項和數(shù)據(jù)顯示圖表。
                myChart.setOption(option);
              </script>
            </body>
          </html>

          這樣你的第一個圖表就誕生了!

          常用圖表類型

          • 柱狀圖:基礎柱狀圖,堆疊柱狀圖,動態(tài)排序柱狀圖,階梯瀑布圖

          • 折線圖:基礎折線圖,堆疊折線圖,區(qū)域面積圖,平滑曲線圖,階梯線圖

          • 餅圖:基礎餅圖,圓環(huán)圖南丁格爾圖(玫瑰圖)

          • 散點圖:基礎散點圖

          服務端渲染:



          數(shù)據(jù)處理


          項目地址:

          https://github.com/apache/echarts


          主站蜘蛛池模板: 精品亚洲A∨无码一区二区三区| 无码日韩精品一区二区人妻 | 精品视频一区二区三区在线观看| 国产精品福利一区| 精品动漫一区二区无遮挡| 亚洲国产精品无码第一区二区三区| 精品日韩一区二区三区视频| 国产精品一区12p| 成人免费av一区二区三区| 无码人妻精品一区二区蜜桃百度 | 亚洲爆乳精品无码一区二区| 免费看AV毛片一区二区三区| 爆乳熟妇一区二区三区霸乳| 亚洲一区二区三区在线网站| 国产日韩高清一区二区三区 | 国产a∨精品一区二区三区不卡| 国产成人精品视频一区| 日韩精品中文字幕无码一区 | 久久一区二区三区99| 精品人妻一区二区三区毛片 | 精品人妻码一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 中文字幕人妻AV一区二区| 人妻久久久一区二区三区| 中文字幕一区日韩精品| 精品一区二区三区视频在线观看| 午夜精品一区二区三区在线观看| 久久成人国产精品一区二区| 在线中文字幕一区| 国产伦精品一区二区三区免费迷| 精品一区精品二区| 视频一区二区在线播放| 少妇精品无码一区二区三区| 国内精品无码一区二区三区| 无人码一区二区三区视频| 亚洲爆乳无码一区二区三区| 亚洲国产精品一区二区三区在线观看| 99久久人妻精品免费一区| 色一情一乱一区二区三区啪啪高 | 国产激情з∠视频一区二区| 国产精品成人免费一区二区|